------------------------------------------------------------------- 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