]> git.ipfire.org Git - people/mfischer/ipfire-2.x.git/commitdiff
fmt: Update to version 11.0.1
authorAdolf Belka <adolf.belka@ipfire.org>
Tue, 16 Jul 2024 11:00:04 +0000 (13:00 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 22 Jul 2024 15:21:21 +0000 (15:21 +0000)
- Update from version 10.2.1 to 11.0.1
- Update of rootfile
- fmt from version 11.0.0 onwards has made the format function a constant. This was done to
   enforce that formatter::format is const for compatibility with std::format.
- Changelog
    11.0.1
Fixed version number in the inline namespace (#4047).
Fixed disabling Unicode support via CMake (#4051).
Fixed deprecated visit_format_arg (#4043).
Fixed handling of a sign and improved the std::complex formater (#4034, #4050).
Removed a redundant check in the formatter for std::expected (#4040).
    11.0.0
Added fmt/base.h which provides a subset of the API with minimal include
 dependencies and enough functionality to replace all uses of the printf family
 of functions. This brings the compile time of code using {fmt} much closer to
 the equivalent printf code.
 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 printf will be smaller partly because common standard headers
 will be included in almost any translation unit (TU) anyway. In particular, in
 every case except printf above ~1s is spent in total on including <type_traits>
 in all TUs.
Optimized includes in other headers such as fmt/format.h which is now roughly
 equivalent to the old fmt/core.h in terms of build speed.
Migrated the documentation at https://fmt.dev/ from Sphinx to MkDocs.
Improved C++20 module support (#3990, #3991, #3993, #3994, #3997, #3998, #4004,
 #4005, #4006, #4013, #4027, #4029). In particular, native CMake support for
 modules is now used if available.
Added an option to replace standard includes with import std enabled via the
 FMT_IMPORT_STD macro (#3921, #3928).
Exported fmt::range_format, fmt::range_format_kind and fmt::compiled_string from
 the fmt module (#3970, #3999).
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
Improved safety of fmt::format_to when writing to an array (#3805). 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
 result object.
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_UNICODE option. Note that some {fmt} packages
 such as the one in vcpkg have already been compiled with Unicode enabled.
Added a formatter for std::expected (#3834).
Added a formatter for std::complex (#1467, #3886, #3892, #3900).
Added a formatter for std::type_info (#3978).
Specialized formatter for std::basic_string types with custom traits and
 allocators (#3938, #3943).
Added formatters for std::chrono::day, std::chrono::month, std::chrono::year and
 std::chrono::year_month_day (#3758, #3772, #3906, #3913).
Fixed handling of precision in %S (#3794, #3814). Thanks @js324.
Added support for the - specifier (glibc strftime extension) to day of the month
 (%d) and week of the year (%W, %U, %V) specifiers (#3976).
Fixed the scope of the - extension in chrono formatting so that it doesn't apply
 to subsequent specifiers (#3811, #3812).
Improved handling of time_point::min() (#3282).
Added support for character range formatting (#3857, #3863).
Added string and debug_string range formatters (#3973, #4024).
Enabled ADL for begin and end in fmt::join (#3813, #3824).
Made contiguous iterator optimizations apply to std::basic_string iterators
 (#3798).
Added support for ranges with mutable begin and end (#3752, #3800, #3955).
Added support for move-only iterators to fmt::join (#3802, #3946).
Moved range and iterator overloads of fmt::join to fmt/ranges.h, next to other
 overloads.
Fixed handling of types with begin returning void such as Eigen matrices (#3839,
 #3964).
Added an fmt::formattable concept (#3974).
Added support for __float128 (#3494).
Fixed rounding issues when formatting long double with fixed precision (#3539).
Made fmt::isnan not trigger floating-point exception for NaN values (#3948, #3951).
Removed dependency on <memory> for std::allocator_traits when possible (#3804).
Enabled compile-time checks in formatting functions that take text colors and
 styles.
Deprecated wide stream overloads of fmt::print that take text styles.
Made format string compilation work with clang 12 and later despite only partial
 non-type template parameter support (#4000, #4001).
Made fmt::iterator_buffer's move constructor noexcept (#3808).
Started enforcing that formatter::format is const for compatibility with
 std::format (#3447).
Added fmt::basic_format_arg::visit and deprecated fmt::visit_format_arg.
Made fmt::basic_string_view not constructible from nullptr for consistency with
 std::string_view in C++23 (#3846).
Fixed fmt::group_digits for negative integers (#3891, #3901).
Fixed handling of negative ids in fmt::basic_format_args::get (#3945).
Improved named argument validation (#3817).
Disabled copy construction/assignment for fmt::format_arg_store and fixed moved
 construction (#3833).
Worked around a locale issue in RHEL/devtoolset (#3858, #3859).
Added RTTI detection for MSVC (#3821, #3963).
Migrated the documentation from Sphinx to MkDocs.
Improved documentation and README.

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/rootfiles/packages/fmt
lfs/fmt

index 2078063cfe0bceee2c01896e82029b2f6813f914..e8c70d3d94f6b4743db374f7116480f8e7dacbc5 100644 (file)
@@ -1,5 +1,6 @@
 #usr/include/fmt
 #usr/include/fmt/args.h
+#usr/include/fmt/base.h
 #usr/include/fmt/chrono.h
 #usr/include/fmt/color.h
 #usr/include/fmt/compile.h
@@ -18,6 +19,6 @@
 #usr/lib/cmake/fmt/fmt-targets-release.cmake
 #usr/lib/cmake/fmt/fmt-targets.cmake
 #usr/lib/libfmt.so
-usr/lib/libfmt.so.10
-usr/lib/libfmt.so.10.2.1
+usr/lib/libfmt.so.11
+usr/lib/libfmt.so.11.0.1
 #usr/lib/pkgconfig/fmt.pc
diff --git a/lfs/fmt b/lfs/fmt
index d66fd17b3bb2a34df6c3479b523fbb36d6fb8022..8b124e0644eae08c70c9d7ca87efada9348ae048 100644 (file)
--- a/lfs/fmt
+++ b/lfs/fmt
@@ -26,7 +26,7 @@ include Config
 
 SUMMARY    = Open-source formatting library for C++
 
-VER        = 10.2.1
+VER        = 11.0.1
 
 THISAPP    = fmt-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -34,7 +34,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = fmt
-PAK_VER    = 4
+PAK_VER    = 5
 
 DEPS       =
 
@@ -46,7 +46,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 7bef719aa99464b5cb608c81ca78e23f3aed81cadfa9ed65246c4983a98f0cadb27983d42929ab4e0b5e264673e38d7658a4f7d5171e624b2431b3c6327071d9
+$(DL_FILE)_BLAKE2 = 96f3205afb6ac61549ca57b2ba1c8dca5ab523eebd08663ae9b352784fba7994ffa9ffc9be8a37977962175861a43082d4127a293a2e3d4219b5532b57d32693
 
 install : $(TARGET)