pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/textproc/fmtlib fmtlib: updated to 8.1.1



details:   https://anonhg.NetBSD.org/pkgsrc/rev/56f67ee9038c
branches:  trunk
changeset: 371256:56f67ee9038c
user:      adam <adam%pkgsrc.org@localhost>
date:      Fri Jan 07 21:16:09 2022 +0000

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

diffstat:

 textproc/fmtlib/Makefile |  6 ++++--
 textproc/fmtlib/distinfo |  8 ++++----
 2 files changed, 8 insertions(+), 6 deletions(-)

diffs (34 lines):

diff -r 2c40c93c0d37 -r 56f67ee9038c textproc/fmtlib/Makefile
--- a/textproc/fmtlib/Makefile  Fri Jan 07 21:06:28 2022 +0000
+++ b/textproc/fmtlib/Makefile  Fri Jan 07 21:16:09 2022 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.10 2021/07/14 07:31:10 adam Exp $
+# $NetBSD: Makefile,v 1.11 2022/01/07 21:16:09 adam Exp $
 
-DISTNAME=      fmt-8.0.1
+DISTNAME=      fmt-8.1.1
 PKGNAME=       ${DISTNAME:S/fmt/fmtlib/}
 CATEGORIES=    textproc
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=fmtlib/}
@@ -15,6 +15,8 @@
 USE_LANGUAGES=         c c++11
 PKGCONFIG_OVERRIDE=    support/cmake/fmt.pc.in
 TEST_ENV+=             LD_LIBRARY_PATH=${WRKSRC}
+# For Darwin
+TEST_ENV+=             DYLD_LIBRARY_PATH=${WRKSRC}
 TEST_TARGET=           test
 
 CMAKE_ARGS+=   -DBUILD_SHARED_LIBS=ON
diff -r 2c40c93c0d37 -r 56f67ee9038c textproc/fmtlib/distinfo
--- a/textproc/fmtlib/distinfo  Fri Jan 07 21:06:28 2022 +0000
+++ b/textproc/fmtlib/distinfo  Fri Jan 07 21:16:09 2022 +0000
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.13 2021/10/26 11:21:53 nia Exp $
+$NetBSD: distinfo,v 1.14 2022/01/07 21:16:09 adam Exp $
 
-BLAKE2s (fmt-8.0.1.tar.gz) = 51a11e9f44ff5f1c4e8dda3e0198eff2d123396c043c938f515bfb1fe352dba8
-SHA512 (fmt-8.0.1.tar.gz) = 643e68d5b2e0e9c83231ab2b0036596a6297b1d9ed6bd7b1172bee4ff134c8af8f09174c06c94225132c1b635b0977ea4ce783748d7bd76a9a0b5ad597456c84
-Size (fmt-8.0.1.tar.gz) = 805616 bytes
+BLAKE2s (fmt-8.1.1.tar.gz) = 995c9b11fe27b6c33a3c34aa2475f9020da5fb48fbbcd6da1f0aac761c53ee5c
+SHA512 (fmt-8.1.1.tar.gz) = 794a47d7cb352a2a9f2c050a60a46b002e4157e5ad23e15a5afc668e852b1e1847aeee3cda79e266c789ff79310d792060c94976ceef6352e322d60b94e23189
+Size (fmt-8.1.1.tar.gz) = 826254 bytes



Home | Main Index | Thread Index | Old Index