--- - branch: MAIN date: Fri Jan 7 21:16:09 UTC 2022 files: - new: '1.11' old: '1.10' path: pkgsrc/textproc/fmtlib/Makefile pathrev: pkgsrc/textproc/fmtlib/Makefile@1.11 type: modified - new: '1.14' old: '1.13' path: pkgsrc/textproc/fmtlib/distinfo pathrev: pkgsrc/textproc/fmtlib/distinfo@1.14 type: modified id: 20220107T211609Z.912478299ac6f8c060e5ddaca7abb1c7f8f4df6a log: | fmtlib: updated to 8.1.1 8.1.1 - 2022-01-06 ------------------ * Restored ABI compatibility with version 8.0.x * Fixed chorno formatting on big endian systems * Fixed a linkage error with mingw 8.1.0 - 2022-01-02 ------------------ * 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++:: ---------------------------------------------------------------------------- Benchmark Before After ---------------------------------------------------------------------------- FMTFormatter_z 261 ns 26.3 ns FMTFormatterCompile_z 246 ns 11.6 ns FMTFormatter_Y 263 ns 26.1 ns FMTFormatterCompile_Y 244 ns 10.5 ns ---------------------------------------------------------------------------- * Implemented subsecond formatting for chrono durations For example (`godbolt `__): .. code:: c++ #include int main() { fmt::print("{:%S}", std::chrono::milliseconds(1234)); } prints "01.234". * 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. For example (`godbolt `__): .. code:: c++ #include int main() { fmt::print("{} dollars", fmt::group_digits(1000000)); } prints "1,000,000 dollars". * Added support for faint, conceal, reverse and blink text styles * Added experimental support for compile-time floating point formatting It is currently limited to the header-only mode. * Added UDL-based named argument support to compile-time format string checks For example (`godbolt `__): .. code:: c++ #include int main() { using namespace fmt::literals; fmt::print("{answer:s}", "answer"_a=42); } gives a compile-time error on compilers with C++20 ``consteval`` and non-type template parameter support (gcc 10+) because ``s`` is not a valid format specifier for an integer. * Implemented escaping of string range elements. For example (`godbolt `__): .. code:: c++ #include #include int main() { fmt::print("{}", std::vector{"\naan"}); } is now printed as:: ["\naan"] instead of:: [" aan"] * Switched to JSON-like representation of maps and sets for consistency with Python's ``str.format``. For example (`godbolt `__): .. code:: c++ #include #include int main() { fmt::print("{}", std::map{{"answer", 42}}); } is now printed as:: {"answer": 42} * 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 module: pkgsrc subject: 'CVS commit: pkgsrc/textproc/fmtlib' unixtime: '1641590169' user: adam