oneDAL
oneDAL copied to clipboard
chore(deps): update dependency fmt to v11
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| fmt | http_archive | major | 10.2.1 -> 11.0.0 |
Release Notes
fmtlib/fmt (fmt)
v11.0.0
-
Added
fmt/base.hwhich provides a subset of the API with minimal include dependencies and enough functionality to replace all uses of theprintffamily of functions. This brings the compile time of code using {fmt} much closer to the equivalentprintfcode as shown on the following benchmark that compiles 100 source files:Method Compile Time (s) printf 1.6 IOStreams 25.9 fmt 10.x 19.0 fmt 11.0 4.8 tinyformat 29.1 Boost Format 55.0 This gives almost 4x improvement in build speed compared to version 10. Note that the benchmark is purely formatting code and includes. In real projects the difference from
printfwill be smaller partly because common standard headers will be included in almost any translation unit (TU) anyway. In particular, in every case exceptprintfabove ~1s is spent in total on including<type_traits>in all TUs. -
Optimized includes in other headers such as
fmt/format.hwhich is now roughly equivalent to the oldfmt/core.hin terms of build speed. -
Migrated the documentation at https://fmt.dev/ from Sphinx to MkDocs.
-
Improved C++20 module support https://github.com/fmtlib/fmt/issues/399039https://github.com/fmtlib/fmt/pull/3991ulhttps://github.com/fmtlib/fmt/issues/3993/ihttps://github.com/fmtlib/fmt/pull/3994ibhttps://github.com/fmtlib/fmt/pull/3997fmhttps://github.com/fmtlib/fmt/pull/3998cohttps://github.com/fmtlib/fmt/pull/4004huhttps://github.com/fmtlib/fmt/pull/4005/ghttps://github.com/fmtlib/fmt/pull/4006pshttps://github.com/fmtlib/fmt/pull/4013 hhttps://github.com/fmtlib/fmt/pull/4027 https://github.com/fmtlib/fmt/pull/4029027, https://github.com/fmtlib/fmt/pull/4029). In particular, native CMake support for modules is now used if available. Thanks @yujincheng08 and @matt77hias.
-
Added an option to replace standard includes with
import stdenabled via theFMT_IMPORT_STDmacro (https://github.com/fmtlib/fmt/issues/3921, https://github.com/fmtlib/fmt/pull/39283928). Thanks @matt77hias. -
Exported
fmt::range_format,fmt::range_format_kindandfmt::compiled_stringfrom thefmtmodule https://github.com/fmtlib/fmt/pull/397039https://github.com/fmtlib/fmt/pull/3999ull/3999). Thanks @matt77hias and @yujincheng08. -
Improved integration with stdio in
fmt::print, enabling direct writes into a C stream buffer in common cases. This may give significant performance improvements ranging from tens of percent to 2x and eliminates dynamic memory allocations on the buffer level. It is currently enabled for built-in and string types with wider availability coming up in future releases.For example, it gives ~24% improvement on a simple benchmark compiled with Apple clang version 15.0.0 (clang-1500.1.0.2.5) and run on macOS 14.2.1:
------------------------------------------------------- Benchmark Time CPU Iterations ------------------------------------------------------- printf 81.8 ns 81.5 ns 8496899 fmt::print (10.x) 63.8 ns 61.9 ns 11524151 fmt::print (11.0) 51.3 ns 51.0 ns 13846580 -
Improved safety of
fmt::format_towhen writing to an array https://github.com/fmtlib/fmt/pull/38053805). For example (godbolt):auto volkswagen = char[4]; auto result = fmt::format_to(volkswagen, "elephant");no longer results in a buffer overflow. Instead the output will be truncated and you can get the end iterator and whether truncation occurred from the
resultobject. Thanks @ThePhD. -
Enabled Unicode support by default in MSVC, bringing it on par with other compilers and making it unnecessary for users to enable it explicitly. Most of {fmt} is encoding-agnostic but this prevents mojibake in places where encoding matters such as path formatting and terminal output. You can control the Unicode support via the CMake
FMT_UNICODEoption. Note that some {fmt} packages such as the one in vcpkg have already been compiled with Unicode enabled. -
Added a formatter for
std::expectedhttps://github.com/fmtlib/fmt/pull/38343834). Thanks @dominicpoeschko. -
Added a formatter for
std::complexhttps://github.com/fmtlib/fmt/issues/146714https://github.com/fmtlib/fmt/issues/3886uehttps://github.com/fmtlib/fmt/pull/3892mthttps://github.com/fmtlib/fmt/pull/3900ib/fmt/pull/3900). Thanks @phprus. -
Added a formatter for
std::type_infohttps://github.com/fmtlib/fmt/pull/39783978). Thanks @matt77hias. -
Specialized
formatterforstd::basic_stringtypes with custom traits and allocatohttps://github.com/fmtlib/fmt/issues/393839https://github.com/fmtlib/fmt/pull/3943ull/3943). Thanks @dieram3. -
Added formatters for
std::chrono::day,std::chrono::month,std::chrono::yearandstd::chrono::year_month_dayhttps://github.com/fmtlib/fmt/issues/375837https://github.com/fmtlib/fmt/issues/3772uehttps://github.com/fmtlib/fmt/pull/3906mthttps://github.com/fmtlib/fmt/pull/3913ib/fmt/pull/3913). For example:#include <fmt/chrono.h> #include <fmt/color.h> int main() { fmt::print(fg(fmt::color::green), "{}\n", std::chrono::day(7)); }prints a green day:
Thanks @zivshek.
-
Fixed handling of precision in
%S(https://github.com/fmtlib/fmt/issues/3794, https://github.com/fmtlib/fmt/pull/38143814). Thanks @js324. -
Added support for the
-specifier (glibcstrftimeextension) to day of the month (%d) and week of the year (%W,%U,%V) specifiers https://github.com/fmtlib/fmt/pull/39763976). Thanks @ZaheenJ. -
Fixed the scope of the
-extension in chrono formatting so that it doesn't apply to subsequent specifiehttps://github.com/fmtlib/fmt/issues/381138https://github.com/fmtlib/fmt/pull/3812ull/3812). Thanks @phprus. -
Improved handling of
time_point::min()https://github.com/fmtlib/fmt/issues/32823282). -
Added support for character range formatting https://github.com/fmtlib/fmt/issues/385738https://github.com/fmtlib/fmt/pull/3863ull/3863). Thanks @js324.
-
Added
stringanddebug_stringrange formatters https://github.com/fmtlib/fmt/pull/397339https://github.com/fmtlib/fmt/pull/4024ull/4024). Thanks @matt77hias. -
Enabled ADL for
beginandendinfmt::joinhttps://github.com/fmtlib/fmt/issues/381338https://github.com/fmtlib/fmt/pull/3824ull/3824). Thanks @bbolli. -
Made contiguous iterator optimizations apply to
std::basic_stringiterators https://github.com/fmtlib/fmt/pull/37983798). Thanks @phprus. -
Added support for ranges with mutable
beginandendhttps://github.com/fmtlib/fmt/issues/375237https://github.com/fmtlib/fmt/pull/3800ulhttps://github.com/fmtlib/fmt/pull/3955mt/pull/3955). Thanks @tcbrindle and @Arghnews. -
Added support for move-only iterators to
fmt::joinhttps://github.com/fmtlib/fmt/issues/380238https://github.com/fmtlib/fmt/pull/3946ull/3946). Thanks @Arghnews. -
Moved range and iterator overloads of
fmt::jointofmt/ranges.h, next to other overloads. -
Fixed handling of types with
beginreturningvoidsuch as Eigen matrices https://github.com/fmtlib/fmt/issues/383938https://github.com/fmtlib/fmt/pull/3964ull/3964). Thanks @Arghnews. -
Added an
fmt::formattableconcept (https://github.com/fmtlib/fmt/pull/3974). Thanks @matt77hias. -
Added support for
__float128(https://github.com/fmtlib/fmt/issues/3494). -
Fixed rounding issues when formatting
long doublewith fixed precision https://github.com/fmtlib/fmt/issues/35393539). -
Made
fmt::isnannot trigger floating-point exception for NaN values https://github.com/fmtlib/fmt/issues/394839https://github.com/fmtlib/fmt/pull/3951ull/3951). Thanks @alexdewar. -
Removed dependency on
<memory>forstd::allocator_traitswhen possible https://github.com/fmtlib/fmt/pull/38043804). Thanks @phprus. -
Enabled compile-time checks in formatting functions that take text colors and styles.
-
Deprecated wide stream overloads of
fmt::printthat take text styles. -
Made format string compilation work with clang 12 and later despite only partial non-type template parameter suppohttps://github.com/fmtlib/fmt/issues/4000uehttps://github.com/fmtlib/fmt/pull/4001mt/pull/4001). Thanks @yujincheng08.
-
Made
fmt::iterator_buffer's move constructornoexcepthttps://github.com/fmtlib/fmt/pull/38083808). Thanks @waywardmonkeys. -
Started enforcing that
formatter::formatis const for compatibility withstd::format(https://github.com/fmtlib/fmt/issues/3447). -
Added
fmt::basic_format_arg::visitand deprecatedfmt::visit_format_arg. -
Made
fmt::basic_string_viewnot constructible fromnullptrfor consistency withstd::string_viewin C++23 https://github.com/fmtlib/fmt/pull/38463846). Thanks @dalle. -
Fixed
fmt::group_digitsfor negative integers https://github.com/fmtlib/fmt/issues/389138https://github.com/fmtlib/fmt/pull/3901ull/3901). Thanks @phprus. -
Fixed handling of negative ids in
fmt::basic_format_args::gethttps://github.com/fmtlib/fmt/pull/39453945). Thanks @marlenecota. -
Improved named argument validation https://github.com/fmtlib/fmt/issues/38173817).
-
Disabled copy construction/assignment for
fmt::format_arg_storeand fixed moved constructihttps://github.com/fmtlib/fmt/pull/38333833). Thanks @ivafanas. -
Worked around a locale issue in RHEL/devtoolset https://github.com/fmtlib/fmt/issues/385838https://github.com/fmtlib/fmt/pull/3859ull/3859). Thanks @g199209.
-
Added RTTI detection for MSVC (https://github.com/fmtlib/fmt/pull/3821, https://github.com/fmtlib/fmt/pull/39633963). Thanks @edo9300.
-
Migrated the documentation from Sphinx to MkDocs.
-
Improved documentation and README https://github.com/fmtlib/fmt/issues/377537https://github.com/fmtlib/fmt/pull/3784ulhttps://github.com/fmtlib/fmt/issues/3788/ihttps://github.com/fmtlib/fmt/pull/3789ibhttps://github.com/fmtlib/fmt/pull/3793fmhttps://github.com/fmtlib/fmt/issues/3818m/https://github.com/fmtlib/fmt/pull/3820huhttps://github.com/fmtlib/fmt/pull/3822/ghttps://github.com/fmtlib/fmt/pull/3843pshttps://github.com/fmtlib/fmt/pull/3890 hhttps://github.com/fmtlib/fmt/issues/3894 https://github.com/fmtlib/fmt/pull/389589https://github.com/fmtlib/fmt/pull/3905llhttps://github.com/fmtlib/fmt/issues/3942puhttps://github.com/fmtlib/fmt/pull/4008fmt/issues/3942, https://github.com/fmtlib/fmt/pull/4008). Thanks @zencatalyst, WolleTD, @tupaschoal, @Dobiasd, @frank-weinberg, @bbolli, @phprus, @waywardmonkeys, @js324 and @tchaikov.
-
Improved CI and tests https://github.com/fmtlib/fmt/issues/387838https://github.com/fmtlib/fmt/pull/3883ulhttps://github.com/fmtlib/fmt/issues/3897/ihttps://github.com/fmtlib/fmt/pull/3979ibhttps://github.com/fmtlib/fmt/pull/3980fmhttps://github.com/fmtlib/fmt/pull/3988cohttps://github.com/fmtlib/fmt/pull/4010huhttps://github.com/fmtlib/fmt/pull/4012/ghttps://github.com/fmtlib/fmt/pull/4038ps://github.com/fmtlib/fmt/pull/4038). Thanks @vgorrX, @waywardmonkeys, @tchaikov and @phprus.
-
Fixed buffer overflow when using format string compilation with debug format and
std::back_insert_iterator(https://github.com/fmtlib/fmt/issues/3795, https://github.com/fmtlib/fmt/pull/37973797). Thanks @phprus. -
Improved Bazel support https://github.com/fmtlib/fmt/pull/379237https://github.com/fmtlib/fmt/pull/3801ulhttps://github.com/fmtlib/fmt/pull/3962mthttps://github.com/fmtlib/fmt/pull/3965ib/fmt/pull/3965). Thanks @Vertexwahn.
-
Improved/fixed the CMake config https://github.com/fmtlib/fmt/issues/377737https://github.com/fmtlib/fmt/pull/3783ulhttps://github.com/fmtlib/fmt/issues/3847/ihttps://github.com/fmtlib/fmt/pull/3907ib/fmt/pull/3907). Thanks @phprus and @xTachyon.
-
Fixed various warnings and compilation issues https://github.com/fmtlib/fmt/issues/368536https://github.com/fmtlib/fmt/issues/3769uehttps://github.com/fmtlib/fmt/issues/3796/ihttps://github.com/fmtlib/fmt/issues/3803/fhttps://github.com/fmtlib/fmt/pull/3806fmhttps://github.com/fmtlib/fmt/pull/3807cohttps://github.com/fmtlib/fmt/issues/3809b.https://github.com/fmtlib/fmt/pull/3810/ghttps://github.com/fmtlib/fmt/issues/3830:/https://github.com/fmtlib/fmt/pull/3832 hhttps://github.com/fmtlib/fmt/issues/3835 https://github.com/fmtlib/fmt/pull/384483https://github.com/fmtlib/fmt/issues/3854/3https://github.com/fmtlib/fmt/pull/3856ishttps://github.com/fmtlib/fmt/pull/3865b/https://github.com/fmtlib/fmt/pull/3866mthttps://github.com/fmtlib/fmt/pull/3880omhttps://github.com/fmtlib/fmt/issues/3881.chttps://github.com/fmtlib/fmt/issues/3884ubhttps://github.com/fmtlib/fmt/issues/3898gihttps://github.com/fmtlib/fmt/pull/3899tphttps://github.com/fmtlib/fmt/pull/3909 https://github.com/fmtlib/fmt/pull/391799https://github.com/fmtlib/fmt/pull/3923l/https://github.com/fmtlib/fmt/pull/3924/phttps://github.com/fmtlib/fmt/issues/3925mthttps://github.com/fmtlib/fmt/pull/3930ibhttps://github.com/fmtlib/fmt/pull/3931fmhttps://github.com/fmtlib/fmt/pull/3933b.https://github.com/fmtlib/fmt/issues/3935huhttps://github.com/fmtlib/fmt/pull/3937/ghttps://github.com/fmtlib/fmt/pull/3967pshttps://github.com/fmtlib/fmt/pull/3968 https://github.com/fmtlib/fmt/pull/39727,https://github.com/fmtlib/fmt/pull/3983/3https://github.com/fmtlib/fmt/issues/3992llhttps://github.com/fmtlib/fmt/pull/3995t/https://github.com/fmtlib/fmt/pull/4009b/https://github.com/fmtlib/fmt/pull/4023mtlib/fmt/issues/3992, https://github.com/fmtlib/fmt/pull/3995, https://github.com/fmtlib/fmt/pull/4009, https://github.com/fmtlib/fmt/pull/4023). Thanks @hmbj, @phprus, @res2k, @Baardi, @matt77hias, @waywardmonkeys, @hmbj, @yakra, @prlw1, @Arghnews, @mtillmann0, @ShifftC, @eepp, @jimmy-park and @ChristianGebhardt.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.