Subject: CVS commit: pkgsrc/textproc/fmtlib
From: Adam Ciarcinski
Date: 2022-01-07 22:16:09
Message id: 20220107211609.AE943FAEC@cvs.NetBSD.org

Log Message:
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 <https://godbolt.org/z/es7vWTETe>`__):

  .. code:: c++

     #include <fmt/chrono.h>

     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 <https://godbolt.org/z/TxGxG9Poq>`__):

  .. code:: c++

     #include <fmt/format.h>

     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 <https://godbolt.org/z/ohGbbvonv>`__):

  .. code:: c++

     #include <fmt/format.h>

     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 <https://godbolt.org/z/rKvM1vKf3>`__):

  .. code:: c++

     #include <fmt/ranges.h>
     #include <vector>

     int main() {
       fmt::print("{}", std::vector<std::string>{"\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 <https://godbolt.org/z/seKjoY9W5>`__):

  .. code:: c++

     #include <fmt/ranges.h>
     #include <map>

     int main() {
       fmt::print("{}", std::map<std::string, \ 
int>{{"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

Files:
RevisionActionfile
1.11modifypkgsrc/textproc/fmtlib/Makefile
1.14modifypkgsrc/textproc/fmtlib/distinfo