From 12ad898230de58176b40a04f8221e925bce44d0917941e717dca8880a0f6541d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Fri, 3 May 2024 12:34:36 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main fmt revision 9f53cf105584583b102fd8cf9f607396 --- .gitattributes | 23 ++ 9.1.0.tar.gz | 3 + baselibs.conf | 1 + fmt.changes | 712 +++++++++++++++++++++++++++++++++++++++++++++++++ fmt.spec | 80 ++++++ 5 files changed, 819 insertions(+) create mode 100644 .gitattributes create mode 100644 9.1.0.tar.gz create mode 100644 baselibs.conf create mode 100644 fmt.changes create mode 100644 fmt.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/9.1.0.tar.gz b/9.1.0.tar.gz new file mode 100644 index 0000000..3f652c1 --- /dev/null +++ b/9.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dea48d1fcddc3ec571ce2058e13910a0d4a6bab4cc09a809d8b1dd1c88ae6f2 +size 837901 diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..9e3eeee --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +libfmt9 diff --git a/fmt.changes b/fmt.changes new file mode 100644 index 0000000..b77b18d --- /dev/null +++ b/fmt.changes @@ -0,0 +1,712 @@ +------------------------------------------------------------------- +Fri Mar 10 08:14:22 UTC 2023 - Martin Liška + +- Use -ffloat-store as a fix for excessive precision provided + by X87 on i686 target (https://github.com/fmtlib/fmt/issues/3337). + +------------------------------------------------------------------- +Sun Aug 28 06:35:23 UTC 2022 - Jan Engelhardt + +- Update to release 9.1 + * fmt::formatted_size now works at compile time + * Fixed handling of invalid UTF-8 (#3038) + * Improved Unicode support in ostream overloads of print + * Added support for wide streams to fmt::streamed + * Added the n specifier that disables the output of delimiters + when formatting ranges (#2981) +- Delete 0001-Fix-large-shift-in-uint128_fallback.patch + 0002-Use-FMT_USE_FLOAT128-instead-of-__SIZEOF_FLOAT128__.patch + 0001-Make-sure-the-correct-fmod-overload-is-called.patch (merged) + +------------------------------------------------------------------- +Tue Jul 5 14:16:23 UTC 2022 - Jan Engelhardt + +- Update to release 9 + * Switched to the internal floating point formatter for all + decimal presentation formats. In particular this results in + consistent rounding on all platforms and removing the + s[n]printf fallback for decimal FP formatting. + * Compile-time floating point formatting no longer requires the + header-only mode. + * Disabled automatic std::ostream insertion operator + (operator<<) discovery when fmt/ostream.h is included to + prevent ODR violations. You can get the old behavior by + defining FMT_DEPRECATED_OSTREAM. + * Added fmt::ostream_formatter that can be used to write + formatter specializations that perform formatting via + std::ostream. + * Added the fmt::streamed function that takes an object and + formats it via std::ostream. + * Added experimental std::variant formatting support. + * Added experimental std::filesystem::path formatting support. + * Added a std::thread::id formatter to fmt/std.h. + * Added support for nested specifiers to range formatting. +- Add 0001-Fix-large-shift-in-uint128_fallback.patch + 0002-Use-FMT_USE_FLOAT128-instead-of-__SIZEOF_FLOAT128__.patch + 0001-Make-sure-the-correct-fmod-overload-is-called.patch + +------------------------------------------------------------------- +Sat Apr 30 12:01:50 UTC 2022 - Jan Engelhardt + +- Replace obsolete macro %make_jobs by %cmake_build + +------------------------------------------------------------------- +Fri Jan 7 08:36:43 UTC 2022 - Luigi Baldoni + +- Update to version 8.1.1 + * Restored ABI compatibility with version 8.0.x + * Fixed chrono formatting on big-endian systems + +------------------------------------------------------------------- +Mon Jan 3 10:11:22 UTC 2022 - Luigi Baldoni + +- Update to version 8.1.0 + * Optimized chrono formatting. + + Processing of some specifiers such as %z and %Y is now up + to 10-20 times faster, for example on GCC 11 with + libstdc++. + * Implemented subsecond formatting for chrono durations. + * Fixed handling of precision 0 when formatting chrono + durations. + * Fixed an overflow on invalid inputs in the tm formatter. + * Added fmt::group_digits that formats integers with a + non-localized digit separator (comma) for groups of three + digits. + * Added support for faint, conceal, reverse and blink text + styles. + * Added experimental support for compile-time floating point + formatting. + * Added UDL-based named argument support to compile-time + format string checks. + * Implemented escaping of string range elements. + * Switched to JSON-like representation of maps and sets for + consistency with Python's str.format. + * Extended fmt::join to support C++20-only ranges. + * Optimized handling of non-const-iterable ranges and + implemented initial support for non-const-formattable types. + * Disabled implicit conversions of scoped enums to integers + that was accidentally introduced in earlier versions. + * Deprecated implicit conversion of [const] signed char* and + [const] unsigned char* to C strings. + * Deprecated _format, a legacy UDL-based format API. + * Marked format, formatted_size and to_string as [[nodiscard]]. + * Added missing diagnostic when trying to format function and + member pointers as well as objects convertible to pointers + which is explicitly disallowed. + * Optimized writing to a contiguous buffer with format_to_n. + * Optimized writing to non-char buffers. + * Decimal point is now localized when using the L specifier. + * Improved floating point formatter implementation. + * Fixed handling of very large precision in fixed format. + * Made a table of cached powers used in FP formatting static. + * Resolved a lookup ambiguity with C++20 format-related + functions due to ADL. + * Removed unnecessary inline namespace qualification. + * Implemented argument forwarding in format_to_n. + * Fixed handling of implicit conversions in fmt::to_string and + format string compilation. + * Changed the default access mode of files created by + fmt::output_file to -rw-r--r-- for consistency with fopen. + * Make fmt::ostream::flush public. + * Improved C++14/17 attribute detection. + * Improved documentation. + * Improved fuzzers and added a fuzzer for chrono timepoint + formatting. + * Added the FMT_SYSTEM_HEADERS CMake option setting which + marks {fmt}'s headers as system. It can be used to suppress + warnings. + * Added the Bazel build system support. + * Improved build configuration and tests. + * Fixed various warnings and compilation issues. + +------------------------------------------------------------------- +Sat Jul 3 05:28:37 UTC 2021 - Luigi Baldoni + +- Update to version 8.0.1 + * Fixed the version number in the inline namespace. + * Added a missing presentation type check for std::string. + * Fixed a linkage error when mixing code built with clang and + gcc. + * Fixed documentation issues. + * Removed dead code in FP formatter. + * Fixed various warnings and compilation issues. + +------------------------------------------------------------------- +Mon Jun 21 14:48:42 UTC 2021 - Luigi Baldoni + +- Update to version 8.0.0 + * Enabled compile-time format string check by default. + * Added compile-time formatting. + * Optimized handling of format specifiers during format string + compilation. + * Added the ``_cf`` user-defined literal to represent a + compiled format string. It can be used instead of the + ``FMT_COMPILE`` macro. + * Format string compilation now requires ``format`` functions + of ``formatter`` specializations for user-defined types to + be ``const``. + * Added UDL-based named argument support to format string + compilation. + * Added format string compilation support to ``fmt::print``. + * Added initial support for compiling {fmt} as a C++20 module. + * Made symbols private by default reducing shared library size + * Optimized includes making the result of preprocessing + ``fmt/format.h``. + * Added support of ranges with non-const ``begin`` / ``end`` + * Added support of ``std::byte`` and other formattable types + to ``fmt::join``. + * Implemented the default format for + ``std::chrono::system_clock``. + * Made more chrono specifiers locale independent by default. + Use the ``'L'`` specifier to get localized formatting. + * Improved locale handling in chrono formatting. + * Deprecated ``fmt/locale.h`` moving the formatting functions + that take a locale to ``fmt/format.h`` (``char``) and + ``fmt/xchar`` (other overloads). This doesn't introduce a + dependency on ```` so there is virtually no compile + time effect. + * Made parameter order in ``vformat_to`` consistent with + ``format_to``. + * Added support for time points with arbitrary durations. + * Formatting floating-point numbers no longer produces + trailing zeros by default. + for consistency with ``std::format``. + * Dropped a limit on the number of elements in a range and + replaced ``{}`` with ``[]`` as range delimiters for + consistency with Python's ``str.format``. + * The ``'L'`` specifier for locale-specific numeric formatting + can now be combined with presentation specifiers as in + ``std::format``. + * Made the ``0`` specifier ignored for infinity and NaN. + * Made the hexfloat formatting use the right alignment by + default. + * Removed the deprecated numeric alignment (``'='``). Use the + ``'0'`` specifier instead. + * Removed the deprecated ``fmt/posix.h`` header that has been + replaced with ``fmt/os.h``. + * Removed the deprecated ``format_to_n_context``, + ``format_to_n_args`` and ``make_format_to_n_args``. They + have been replaced with ``format_context``, ``format_args` + and ``make_format_args`` respectively. + * Moved ``wchar_t``-specific functions and types to + ``fmt/wchar.h``. You can define + ``FMT_DEPRECATED_INCLUDE_WCHAR`` to automatically include + ``fmt/wchar.h`` from ``fmt/format.h`` but this will be + disabled in the next major release. + * Fixed handling of the ``'+'`` specifier in localized + formatting. + * Added support for the ``'s'`` format specifier that gives + textual representation of ``bool``. + * Made ``fmt::ptr`` work with function pointers. + * Fixed ``fmt::formatted_size`` with format string compilation + * Fixed handling of empty format strings during format string + compilation. + * Fixed handling of enums in ``fmt::to_string``. + * Improved width computation. + * The experimental fast output stream (``fmt::ostream``) is + now truncated by default for consistency with ``fopen``. + * Fixed moving of ``fmt::ostream`` that holds buffered data + * Replaced the ``fmt::system_error`` exception with a function + of the same name that constructs ``std::system_error``. + * Replaced the ``fmt::windows_error`` exception with a + function of the same name that constructs + ``std::system_error`` with the category returned by + ``fmt::system_category()``. + * Replaced ``fmt::error_code`` with ``std::error_code`` and + made it formattable. + * Added speech synthesis support. + * Made ``format_to`` work with a memory buffer that has a + custom allocator. + * Added ``Allocator::max_size`` support to + ``basic_memory_buffer``. + * Added wide string support to ``fmt::join`` + * Made iterators passed to ``formatter`` specializations via a + format context satisfy C++20 ``std::output_iterator`` + requirements. + * Optimized the ``printf`` implementation. + * Improved detection of ``constexpr`` ``char_traits``. + * Fixed exception propagation from iterators. + * Improved ``strftime`` error handling. + * Stopped using deprecated GCC UDL template extension. + * Added ``fmt/args.h`` to the install target. + * Error messages are now passed to assert when exceptions are + disabled. + * Added the ``FMT_MASTER_PROJECT`` CMake option to control + build and install targets when {fmt} is included via + ``add_subdirectory``. + * Improved build configuration. + * Fixed various warnings and compilation issues. + * Improved documentation. + * Continuous integration and test improvements. +- Bump soversion to 8 + +------------------------------------------------------------------- +Wed Nov 25 14:55:58 UTC 2020 - aloisio@gmx.com + +- Update to version 7.1.3 + * Fixed handling of buffer boundaries in format_to_n + * Fixed linkage errors when linking with a shared library + * Reintroduced ostream support to range formatters + * Worked around an issue with mixing std versions in gcc + +------------------------------------------------------------------- +Wed Nov 4 17:34:46 UTC 2020 - aloisio@gmx.com + +- Update to version 7.1.2 + * Fixed floating point formatting with large precision + +------------------------------------------------------------------- +Mon Nov 2 15:27:46 UTC 2020 - aloisio@gmx.com + +- Update to version 7.1.1 + * Fixed ABI compatibility with 7.0.x + * Added the FMT_ARM_ABI_COMPATIBILITY macro to work around + ABI incompatibility between GCC and Clang on ARM + * Worked around a SFINAE bug in GCC 8 + * Fixed linkage errors when building with GCC's LTO + * Fixed a compilation error when building without + __builtin_clz or equivalent + * Fixed a sign conversion warning +- Dropped fmt-7.1.0-LTO.patch (merged upstream) + +------------------------------------------------------------------- +Mon Oct 26 14:54:41 UTC 2020 - Luigi Baldoni + +- Update to version 7.1.0 + * Switched from Grisu3 to Dragonbox for the default + floating-point formatting which gives the shortest decimal + representation with round-trip guarantee and correct rounding. + This makes {fmt} up to 20-30x faster than common + implementations of std::ostringstream and sprintf on + dtoa-benchmark and faster than double-conversion and Ryū. It + is possible to get even better performance at the cost of + larger binary size by compiling with the + FMT_USE_FULL_CACHE_DRAGONBOX macro set to 1. + * Added an experimental unsynchronized file output API which, + together with format string compilation can give 5-9 times + speed up compared to fprintf on common platforms. + * Added a formatter for std::chrono::time_point + * Added support for ranges with non-const begin/end to fmt::join + * Added a memory_buffer::append overload that takes a range. + * Improved handling of single code units in FMT_COMPILE. + * Added dynamic width support to format string compilation. + * Improved error reporting for unformattable types: now you'll + get the type name directly in the error message instead of + the note. + * Added the make_args_checked function template that allows + you to write formatting functions with compile-time format + string checks and avoid binary code bloat. + * Replaced snprintf fallback with a faster internal IEEE 754 + float and double formatter for arbitrary precision. + * Made format_to_n and formatted_size part of the core API. + * Added fmt::format_to_n overload with format string + compilation. + * Added fmt::format_to overload that take text_style. + * Made the # specifier emit trailing zeros in addition to the + decimal point. + * Changed the default floating point format to not include .0 + for consistency with std::format and std::to_chars. It is + possible to get the decimal point and trailing zero with the + # specifier. + * Fixed an issue with floating-point formatting that could + result in addition of a non-significant trailing zero in + rare cases e.g. 1.00e-34 instead of 1.0e-34. + * Made fmt::to_string fallback on ostream insertion operator + if the formatter specialization is not provided. + * Added support for the append mode to the experimental file + API and improved fcntl.h detection. + * Fixed handling of types that have both an implicit + conversion operator and an overloaded ostream insertion + operator. + * Fixed a slicing issue in an internal iterator type. + * Fixed an issue in locale-specific integer formatting. + * Fixed handling of exotic code unit types. + * Improved FMT_ALWAYS_INLINE. + * Improved documentation. + * Added the FMT_REDUCE_INT_INSTANTIATIONS CMake option that + reduces the binary code size at the cost of some integer + formatting performance. This can be useful for extremely + memory-constrained embedded systems. + * Added the FMT_USE_INLINE_NAMESPACES macro to control usage + of inline namespaces. + * Improved build configuration. + * Fixed various warnings and compilation issues. +- Add fmt-7.1.0-LTO.patch + +------------------------------------------------------------------- +Fri Aug 7 19:56:36 UTC 2020 - aloisio@gmx.com + +- Update to version 7.0.3 + * Worked around broken ``numeric_limits`` for 128-bit integers + * Added error reporting on missing named arguments + * Stopped using 128-bit integers with clang-cl + * Fixed issues in locale-specific integer formatting + +------------------------------------------------------------------- +Wed Jul 29 17:33:10 UTC 2020 - aloisio@gmx.com + +- Update to version 7.0.2 + * Worked around broken ``numeric_limits`` for 128-bit integers + * Fixed compatibility with CMake 3.4 + * Fixed handling of digit separators in locale-specific + formatting + +------------------------------------------------------------------- +Tue Jul 7 19:18:26 UTC 2020 - aloisio@gmx.com + +- Update to version 7.0.1 + * Updated the inline version namespace name. + * Worked around a gcc bug in mangling of alias templates + * Fixed minor issues with the documentation. + +------------------------------------------------------------------- +Mon Jul 6 14:36:10 UTC 2020 - Luigi Baldoni + +- Update to version 7.0.0 + * Reduced the library size. + * Added a simpler and more efficient format string compilation + API. The old fmt::compile API is now deprecated. + * Optimized integer formatting: format_to with format string + compilation and a stack-allocated buffer is now faster than + to_chars on both libc++ and libstdc++. + * Optimized handling of small format strings. + * Applied extern templates to improve compile times when using + the core API and fmt/format.h. It is still recommended to use + fmt/core.h instead of fmt/format.h but the compile time + difference is now smaller. + * Named arguments are now stored on stack (no dynamic memory + allocations) and the compiled code is more compact and + efficient. + * Implemented compile-time checks for dynamic width and + precision. + * Added sentinel support to fmt::join. + * Added support for named args, clear and reserve to + dynamic_format_arg_store. + * Added support for the 'c' format specifier to integral types + for compatibility with std::format. + * Replaced the 'n' format specifier with 'L' for compatibility + with std::format. The 'n' specifier can be enabled via the + FMT_DEPRECATED_N_SPECIFIER macro. + * The '=' format specifier is now disabled by default for + compatibility with std::format. It can be enabled via the + FMT_DEPRECATED_NUMERIC_ALIGN macro. + * Removed the following deprecated APIs: + + FMT_STRING_ALIAS and fmt macros - replaced by + FMT_STRING + + fmt::basic_string_view::char_type - replaced by + fmt::basic_string_view::value_type + + convert_to_int + + format_arg_store::types + + *parse_context - replaced by *format_parse_context + + FMT_DEPRECATED_INCLUDE_OS + + FMT_DEPRECATED_PERCENT - incompatible with + std::format + + *writer - replaced by compiled format API + * Renamed the internal namespace to detail. The former is + still provided as an alias if the FMT_USE_INTERNAL macro is + defined. + * Improved compatibility between fmt::printf with the standard + specs. + * Fixed handling of operator<< overloads that use copyfmt. + * Added the FMT_OS CMake option to control inclusion of + OS-specific APIs in the fmt target. This can be useful for + embedded platforms. + * Replaced FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION with the + FMT_FUZZ macro to prevent interferring with fuzzing of + projects using {fmt}. + * Fixed compatibility with emscripten. + * Improved documentation. + * Implemented various build configuration fixes and + improvements. + * Fixed various warnings and compilation issues. +- Drop fmt-6.2.1-fix_pkgconfig_paths.patch +- Bump sover to 7 + +------------------------------------------------------------------- +Tue Jun 23 16:02:53 UTC 2020 - Luigi Baldoni + +- Add fmt-6.2.1-fix_pkgconfig_paths.patch (fix for boo#1173270) + +------------------------------------------------------------------- +Sat May 9 17:53:02 UTC 2020 - Luigi Baldoni + +- Update to version 6.2.1 + * Fixed ostream support in ``sprintf`` + (`#1631 `_). + * Fixed type detection when using implicit conversion to + ``string_view`` and ostream ``operator<<`` inconsistently + (`#1662 `_). +- Drop 7d01859ef16e6b65bc023ad8bebfedecb088bf81.patch (no longer + necessary) +- Spec cleanup + +------------------------------------------------------------------- +Tue Apr 14 13:04:56 UTC 2020 - Hans-Peter Jansen + +- Apply 7d01859ef16e6b65bc023ad8bebfedecb088bf81.patch + to fix kodi compilation and probably others: + https://github.com/fmtlib/fmt/issues/1620 + +------------------------------------------------------------------- +Mon Apr 6 14:21:08 UTC 2020 - Luigi Baldoni + +- Update to version 6.2.0 + * Improved error reporting when trying to format an object of + a non-formattable type: + * Reduced library size by ~10%. + * Always print decimal point if # is specified (#1476, #1498): + * Implemented the 'L' specifier for locale-specific numeric + formatting to improve compatibility with std::format. The 'n' + specifier is now deprecated and will be removed in the next + major release. + * Moved OS-specific APIs such as windows_error from + fmt/format.h to fmt/os.h. You can define + FMT_DEPRECATED_INCLUDE_OS to automatically include fmt/os.h from + fmt/format.h for compatibility but this will be disabled in the + next major release. + * Added precision overflow detection in floating-point + formatting. + * Implemented detection of invalid use of fmt::arg. + * Used type_identity to block unnecessary template argument + deduction. + * Improved UTF-8 handling (#1109): + * Added experimental dynamic argument storage (#1170, #1584): + * Made fmt::join accept initializer_list (#1591). + * Fixed handling of empty tuples (#1588). + * Fixed handling of output iterators in format_to_n (#1506). + * Fixed formatting of std::chrono::duration types to wide + output (#1533). + * Added const begin and end overload to buffers (#1553). + * Added the ability to disable floating-point formatting via + FMT_USE_FLOAT, FMT_USE_DOUBLE and FMT_USE_LONG_DOUBLE macros for + extremely memory-constrained embedded system (#1590). + * Made FMT_STRING work with constexpr string_view (#1589). + * Implemented a minor optimization in the format string parser + (#1560). + * Improved attribute detection (#1469, #1475, #1576). + * Improved documentation (#1481, #1523). + * Fixed symbol visibility on Linux when compiling with + -fvisibility=hidden (#1535). + * Implemented various build configuration fixes and + improvements (#1264, #1460, #1534, #1536, #1545, #1546, #1566, + #1582, #1597, #1598). + * Fixed various warnings and compilation issues + +- Dropped Group tag + +------------------------------------------------------------------- +Wed Dec 11 16:57:03 UTC 2019 - Luigi Baldoni + +- Update to version 6.1.2 + * Fixed ABI compatibility with libfmt.so.6.0.0 (#1471). + * Fixed handling types convertible to std::string_view (#1451). + Thanks @denizevrenci (Deniz Evrenci). + * Made CUDA test an opt-in enabled via the FMT_CUDA_TEST CMake + option. + * Fixed sign conversion warnings (#1440). Thanks @0x8000-0000 + (Florin Iucha). + +------------------------------------------------------------------- +Thu Dec 5 15:43:30 UTC 2019 - Luigi Baldoni + +- Update to version 6.1.1 + * Added a missing decimal point in exponent notation with + trailing zeros. + * Removed deprecated format_arg_store::TYPES. + +------------------------------------------------------------------- +Wed Dec 4 11:34:50 UTC 2019 - Luigi Baldoni + +- Update to version 6.1.0 + * {fmt} now formats IEEE 754 ``float`` and ``double`` using + the shortest decimal representation with correct rounding by + default: + .. code:: c++ + + #include + #include + + int main() { + fmt::print("{}", M_PI); + } + + prints ``3.141592653589793``. + * Made the fast binary to decimal floating-point formatter the + default, simplified it and improved performance. {fmt} is now + 15 times faster than libc++'s ``std::ostringstream``, 11 + times faster than ``printf`` and 10% faster than + double-conversion on `dtoa-benchmark + (https://github.com/fmtlib/dtoa-benchmark) + + ================== ========= ======= + Function Time (ns) Speedup + ================== ========= ======= + ostringstream 1,346.30 1.00x + ostrstream 1,195.74 1.13x + sprintf 995.08 1.35x + doubleconv 99.10 13.59x + fmt 88.34 15.24x + ================== ========= ======= + * {fmt} no longer converts ``float`` arguments to ``double``. + In particular this improves the default (shortest) + representation of floats and makes + ``fmt::format`` consistent with ``std::format`` specs + (#1336, #1353, #1360, #1361) + .. code:: c++ + + fmt::print("{}", 0.1f); + + prints ``0.1`` instead of ``0.10000000149011612``. + * Made floating-point formatting output consistent with + ``printf``/iostreams (#1376, #1417) + * Added support for 128-bit integers (#1287) + .. code:: c++ + + fmt::print("{}", std::numeric_limits<__int128_t>::max()); + + prints ``170141183460469231731687303715884105727``. + * The overload of ``print`` that takes ``text_style`` is now + atomic, i.e. the output from different threads doesn't + interleave (#1351) + * Made compile time in the header-only mode ~20% faster by + reducing the number of template instantiations. ``wchar_t`` + overload of ``vprint`` was moved from + ``fmt/core.h`` to ``fmt/format.h``. + * Added an overload of ``fmt::join`` that works with tuples + (#1322, #1330) + .. code:: c++ + + #include + #include + + int main() { + std::tuple t{'a', 1, 2.0f}; + fmt::print("{}", t); + } + + prints ``('a', 1, 2.0)``. + * Changed formatting of octal zero with prefix from "0o0" to + "0": + .. code:: c++ + + fmt::print("{:#o}", 0); + + prints ``0``. + * The locale is now passed to ostream insertion (``<<``) + operators (#1406) + .. code:: c++ + + #include + #include + + struct S { + double value; + }; + + std::ostream& operator<<(std::ostream& os, S s) { + return os << s.value; + } + + int main() { + auto s = fmt::format(std::locale("fr_FR.UTF-8"), "{}", S{0.42}); + // s == "0,42" + } + * Locale-specific number formatting now uses grouping (#1393, + #1394) + * Fixed handling of types with deleted implicit rvalue + conversion to ``const char**`` (#1421) + .. code:: c++ + + struct mystring { + operator const char*() const&; + operator const char*() &; + operator const char*() const&& = delete; + operator const char*() && = delete; + }; + mystring str; + fmt::print("{}", str); // now compiles + * Enums are now mapped to correct underlying types instead of + ``int`` (#1286) + * Enum classes are no longer implicitly converted to ``int`` + (#1424) + * Added ``basic_format_parse_context`` for consistency with + C++20 ``std::format`` and deprecated ``basic_parse_context``. + * Fixed handling of UTF-8 in precision (#1389, #1390) + * Added a CUDA test (#1285, #1317) + * Improved documentation (#1276, #1291, #1296, #1315, #1332, + #1337, #1395, #1418) + * Various code improvements (#1358, #1407) + * Fixed compile-time format string checks for user-defined + types (#1292) + * Worked around a false positive in + ``unsigned-integer-overflow`` sanitizer (#1377) + * Fixed various warnings and compilation issues (#1273, #1278, + #1280, #1281, #1288, #1290, #1301, #1305, #1306, #1309, + #1312, #1313, #1316, #1319, #1320, #1326, #1328, #1344, + #1345, #1347, #1349, #1354, #1362, #1366, #1364, #1370, + #1371, #1385, #1388, #1397, #1414, #1416, #1422, #1427, + #1431, #1433) + +- Dropped fmt-bigendian_1.patch, fmt-bigendian_2.patch, + fmt-bigendian_3.patch and fmt-bigendian_4.patch (merged + upstream) + +------------------------------------------------------------------- +Sun Dec 1 08:54:54 UTC 2019 - Luigi Baldoni + +- Added fmt-bigendian_1.patch, fmt-bigendian_2.patch, + fmt-bigendian_3.patch and fmt-bigendian_4.patch to fix tests + on big endian targets + +------------------------------------------------------------------- +Fri Nov 29 08:46:30 UTC 2019 - Luigi Baldoni + +- Update to version 6.0.0 + (too many changes to list, see ChangeLog.rst) +- Dropped 0001-install-pkg-config-file-into-libdir.patch (no + longer necessary) +- Switched to MIT license +- Increased SOVERSION to 6 + +------------------------------------------------------------------- +Mon Mar 25 16:21:01 UTC 2019 - olaf@aepfle.de + +- Install fmt.pc into libdir with + 0001-install-pkg-config-file-into-libdir.patch + +------------------------------------------------------------------- +Sat Jan 12 18:29:40 UTC 2019 - Ferdinand Thiessen + +- Update to version 5.3.0: + * Introduced experimental chrono formatting support + * Added experimental support for emphasis + (bold, italic, underline, strikethrough), colored output to a + file stream, and improved colored formatting API + * Added support for 4-bit terminal colors + * Made std::string_view work as a format string + * Added wide string support to compile-time format string checks + * Made colored print functions work with wide strings + * Introduced experimental Unicode support + * Removed undocumented basic_fixed_buffer which has been + superseded by the iterator-based API + * Disallowed repeated leading zeros in an argument ID + * Deprecated fmt::visit, parse_context, and wparse_context. + Use fmt::visit_format_arg, format_parse_context, and + wformat_parse_context instead. +- Removed upstream merged fix-fmt_pc.patch + +------------------------------------------------------------------- +Thu Dec 6 21:15:37 UTC 2018 - Jan Engelhardt + +- Do without em dashes in summaries. + +------------------------------------------------------------------- +Thu Dec 6 13:38:46 UTC 2018 - Luigi Baldoni + +- Added baselibs.conf as source + +------------------------------------------------------------------- +Fri Nov 9 11:51:14 UTC 2018 - munix9@googlemail.com + +- initial package for version 5.2.1 + diff --git a/fmt.spec b/fmt.spec new file mode 100644 index 0000000..d92426e --- /dev/null +++ b/fmt.spec @@ -0,0 +1,80 @@ +# +# spec file for package fmt +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define sover 9 +Name: fmt +Version: 9.1.0 +Release: 0 +Summary: A formatting library for C++ +License: MIT +URL: http://fmtlib.net/ +Source: https://github.com/fmtlib/fmt/archive/%version.tar.gz +Source1: baselibs.conf +BuildRequires: c++_compiler +BuildRequires: cmake +BuildRequires: pkg-config + +%description +Fmt is a formatting library for C++. It can be used as an +alternative to (s)printf and IOStreams. + +%package -n libfmt%{sover} +Summary: A formatting library for C++ + +%description -n libfmt%{sover} +Shared library for fmt, a formatting library for C++. + +%package devel +Summary: Development files for fmt, a formatting library +Requires: libfmt%{sover} = %{version} + +%description devel +Development files for fmt, a formatting library for C++. + +%prep +%autosetup -p1 + +%build +# X87 fix for excessive precision: https://github.com/fmtlib/fmt/issues/3337 +%global optflags %optflags -ffloat-store +%cmake -DCMAKE_INSTALL_INCLUDEDIR:PATH=%{_includedir} +%cmake_build + +%install +%cmake_install + +%check +# path needs to be exported otherwise unit tests will fail +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{_libdir} +%ctest + +%post -n libfmt%{sover} -p /sbin/ldconfig +%postun -n libfmt%{sover} -p /sbin/ldconfig + +%files -n libfmt%{sover} +%license LICENSE.rst +%{_libdir}/libfmt.so.%{sover}* + +%files devel +%doc ChangeLog.rst README.rst +%{_includedir}/%{name} +%{_libdir}/cmake/%{name} +%{_libdir}/libfmt.so +%{_libdir}/pkgconfig/%{name}.pc + +%changelog