pkgsrc-Changes archive

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

CVS commit: pkgsrc/textproc/fmtlib



Module Name:    pkgsrc
Committed By:   wiz
Date:           Mon Jun 22 19:28:41 UTC 2026

Modified Files:
        pkgsrc/textproc/fmtlib: Makefile PLIST distinfo

Log Message:
fmtlib: update to 12.2.0.

# 12.2.0 - 2026-06-16

- Added a C11 API that brings fast, type-safe formatting to C. The new
  `fmt-c` library and `fmt/fmt-c.h` header use `_Generic` to dispatch on
  argument types and outperform `printf`/`sprintf`. For example:

  ```c++
  #include <fmt/fmt-c.h>

  fmt_print(stdout, "The answer is {}.\n", 42);
  ```

  (https://github.com/fmtlib/fmt/issues/4663,
  https://github.com/fmtlib/fmt/pull/4671,
  https://github.com/fmtlib/fmt/pull/4696,
  https://github.com/fmtlib/fmt/issues/4693,
  https://github.com/fmtlib/fmt/pull/4694,
  https://github.com/fmtlib/fmt/pull/4712,
  https://github.com/fmtlib/fmt/pull/4789).
  Thanks @Soumik15630m, @Ferdi265 and @localspook.

- Added a separate `fmt::fmt-module` CMake target for C++20 modules and a
  CI workflow that exercises module-based builds
  (https://github.com/fmtlib/fmt/issues/4684,
  https://github.com/fmtlib/fmt/pull/4685,
  https://github.com/fmtlib/fmt/issues/4707,
  https://github.com/fmtlib/fmt/pull/4708,
  https://github.com/fmtlib/fmt/pull/4702,
  https://github.com/fmtlib/fmt/pull/4709).
  Thanks @MathewBensonCode.

- Enabled the full Dragonbox lookup cache by default for floating-point
  formatting unless optimizing for binary size (`__OPTIMIZE_SIZE__`),
  giving a ~10–25% speedup. Thanks Matthias Kretz for the suggestion.
  Average time per `double` on Apple M1 Pro (clang 17, random digits,
  smaller is better) measured with
  [dtoa-benchmark](https://github.com/fmtlib/dtoa-benchmark):

  | Method                  | Time (ns) |
  | ----------------------- | --------: |
  | fmt (full)              |     22.07 |
  | fmt (compact)           |     29.55 |
  | ryu                     |     35.21 |
  | double-conversion       |     81.81 |
  | `sprintf`               |    726.27 |
  | `ostringstream`         |    864.34 |

- Improved integer formatting performance by ~3%
  (https://github.com/fmtlib/fmt/pull/4630). Thanks @user202729.

- Optimized formatting into back-insert iterators by using bulk container
  append/insert methods (e.g. on `std::vector<char>` and custom string
  types) (https://github.com/fmtlib/fmt/pull/4679). Thanks @user202729.

- Reduced binary size of debug builds (~200k to ~85k in the bloat test) and
  improved compile speed when `consteval` is unavailable.

- Made path formatting lossless, preserving ill-formed UTF-16
  sequences when converting `std::filesystem::path` to a narrow string.

- Added support for formatting `std::unexpected`
  (https://github.com/fmtlib/fmt/pull/4675). Thanks @17steen.

- Added overloads of `fmt::println` that take a `fmt::text_style`
  (https://github.com/fmtlib/fmt/pull/4782). Thanks @ahoarau.

- Added support for positional arguments as width and precision specifiers
  in `fmt::printf` (https://github.com/fmtlib/fmt/pull/4643).
  Thanks @KareemOtoum.

- Made `FMT_STRING` a no-op when `FMT_USE_CONSTEVAL` is enabled, since the
  consteval format-string constructor already provides compile-time
  validation
  (https://github.com/fmtlib/fmt/issues/4611,
  https://github.com/fmtlib/fmt/pull/4612). Thanks @friedkeenan.

- Promoted `fmt::detail::named_arg` to the public API as `fmt::named_arg` and
  deprecated the detail alias
  (https://github.com/fmtlib/fmt/issues/4683,
  https://github.com/fmtlib/fmt/pull/4687). Thanks @TPPPP72.

- Moved the `std::byte` formatter from `fmt/format.h` to `fmt/std.h`.

- Provided a default definition for `fmt::is_contiguous`
  (https://github.com/fmtlib/fmt/pull/4731,
  https://github.com/fmtlib/fmt/pull/4770). Thanks @user202729 and @phprus.

- Added the `FMT_USE_FLOCKFILE` macro to disable the use of `flockfile`
  (https://github.com/fmtlib/fmt/issues/4646,
  https://github.com/fmtlib/fmt/pull/4666). Thanks @mvastola.

- Added `include_guard(GLOBAL)` so that {fmt} can be used in multiple
  submodules of the same project
  (https://github.com/fmtlib/fmt/pull/4672). Thanks @torsten48.

- Improved `constexpr` support
  (https://github.com/fmtlib/fmt/pull/4659,
  https://github.com/fmtlib/fmt/pull/4591).
  Thanks @elbeno and @17steen.

- Deprecated the implicit conversion from `fmt::format_string` and
  `fmt::basic_fstring` to `string_view` to align with `std::format_string`;
  use `format_string::get()` instead.

- Opted out `std::complex` from tuple formatting so that the dedicated
  `std::complex` formatter is always used.

- Removed the `fmt::say` function.

- Deprecated the `std::initializer_list` overload of `fmt::join` and the array
  overload of `fmt::vformat_to`.

- Made the `<fmt/core.h>` header equivalent to `<fmt/base.h>` by
  default. Code that relied on `<fmt/core.h>` pulling in `<fmt/format.h>`
  must now either include `<fmt/format.h>` directly or define
  `FMT_DEPRECATED_HEAVY_CORE` to opt back in.

- Improved `wchar_t` support: `fmt::join` now accepts `wchar_t` and other
  non-`char` separators, and `fmt::format_to_n` now works with `fmt::runtime`
  on `wchar_t`
  (https://github.com/fmtlib/fmt/pull/4686,
  https://github.com/fmtlib/fmt/issues/4714,
  https://github.com/fmtlib/fmt/pull/4715).
  Thanks @Yancey2023 and @sunmy2019.

- Fixed formatting of `std::tm` with a null `tm_zone`
  (https://github.com/fmtlib/fmt/pull/4790). Thanks @Carmel0.

- Fixed compile-time formatting in `fmt/ranges.h`, `fmt/style.h` and
  `fmt/std.h` (https://github.com/fmtlib/fmt/pull/4759). Thanks @j4niwzis.

- Fixed an ambiguity between `formatter<std::optional<T>>` in `fmt/std.h`
  and `fmt/ranges.h` on C++26 (P3168R2)
  (https://github.com/fmtlib/fmt/pull/4761). Thanks @phprus.

- Fixed a GCC PCH breakage triggered by a scoped `#pragma GCC optimize`.

- Fixed a TSAN false positive in the locale handling code
  (https://github.com/fmtlib/fmt/issues/4755).

- Fixed compile-time format string checks truncating string literals at
  an embedded null byte
  (https://github.com/fmtlib/fmt/pull/4732). Thanks @user202729.

- Fixed out-of-bounds reads in `printf` formatting
  (https://github.com/fmtlib/fmt/issues/4741,
  https://github.com/fmtlib/fmt/pull/4742,
  https://github.com/fmtlib/fmt/pull/4800).
  Thanks @Algunenano and @aizu-m.

- Fixed the return type of the `f(un)lockfile`   wrappers on Windows
  (https://github.com/fmtlib/fmt/pull/4739). Thanks @mvastola.

- Worked around a CUDA issue when handling UTF-32 literals
  (https://github.com/fmtlib/fmt/pull/4719). Thanks @Cazadorro.

- Fixed missing named-argument validation for compiled format strings
  (https://github.com/fmtlib/fmt/pull/4638). Thanks @JaeheonShim.

- Fixed `fmt::format_to_n` in `<fmt/compile.h>` failing to compile when
  `<iterator>` is not transitively included
  (https://github.com/fmtlib/fmt/issues/4615).

- Fixed handling of pointers in format string compilation with
  `FMT_BUILTIN_TYPES=0`.

- Stopped assuming nul termination of the format string in `fmt::printf`.
  Thanks @ZUENS2020 for reporting.

- Fixed a build error when locale support is disabled
  (https://github.com/fmtlib/fmt/pull/4627). Thanks @marcel-behlau-elfin.

- Fixed a fallback range formatter for types with a `container_type` member
  (https://github.com/fmtlib/fmt/issues/4123,
  https://github.com/fmtlib/fmt/pull/4660). Thanks @Soumik15630m.

- Fixed C++20 concept detection
  (https://github.com/fmtlib/fmt/pull/4653). Thanks @tearfur.

- Fixed a clang compilation failure
  (https://github.com/fmtlib/fmt/pull/4718). Thanks @mccakit.

- Fixed various MSVC warnings, including C4305 and conversion warnings on
  x86 (https://github.com/fmtlib/fmt/pull/4668,
  https://github.com/fmtlib/fmt/pull/4594).
  Thanks @kanren3 and @blizzard4591.

- Updated the Android Gradle Plugin to 9.x
  (https://github.com/fmtlib/fmt/issues/4651,
  https://github.com/fmtlib/fmt/pull/4658). Thanks @Soumik15630m.

- Made various code, build and test improvements
  (https://github.com/fmtlib/fmt/pull/4625,
  https://github.com/fmtlib/fmt/pull/4639,
  https://github.com/fmtlib/fmt/pull/4644,
  https://github.com/fmtlib/fmt/pull/4656,
  https://github.com/fmtlib/fmt/pull/4680,
  https://github.com/fmtlib/fmt/pull/4681,
  https://github.com/fmtlib/fmt/pull/4704,
  https://github.com/fmtlib/fmt/pull/4710,
  https://github.com/fmtlib/fmt/pull/4713,
  https://github.com/fmtlib/fmt/pull/4729,
  https://github.com/fmtlib/fmt/pull/4751,
  https://github.com/fmtlib/fmt/pull/4758,
  https://github.com/fmtlib/fmt/pull/4799).
  Thanks @ZephyrLykos, @togunchan, @kagancansit, @BerndPetrovitsch,
  @Skylion007, @st0rmbtw, @localspook and @EXtremeExploit.

- Improved documentation, including a rewrite of the format string syntax,
  better handling of doxygen tags, documenting `output_file`, fixing CSS so
  that whitespace is displayed properly, and various smaller fixes
  (https://github.com/fmtlib/fmt/pull/4622,
  https://github.com/fmtlib/fmt/pull/4626,
  https://github.com/fmtlib/fmt/pull/4631,
  https://github.com/fmtlib/fmt/pull/4667,
  https://github.com/fmtlib/fmt/pull/4616,
  https://github.com/fmtlib/fmt/pull/4748).
  Thanks @heavywatal, @ZephyrLykos, @user202729, @ssszcmawo, @bigmoonbit
  and @Powerbyte7.

- Added building of release artifacts and SLSA provenance in CI, added a
  CodeQL workflow, and added the security policy in `.github/SECURITY.md`.


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 pkgsrc/textproc/fmtlib/Makefile
cvs rdiff -u -r1.13 -r1.14 pkgsrc/textproc/fmtlib/PLIST
cvs rdiff -u -r1.28 -r1.29 pkgsrc/textproc/fmtlib/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/textproc/fmtlib/Makefile
diff -u pkgsrc/textproc/fmtlib/Makefile:1.27 pkgsrc/textproc/fmtlib/Makefile:1.28
--- pkgsrc/textproc/fmtlib/Makefile:1.27        Sun Nov  2 13:50:46 2025
+++ pkgsrc/textproc/fmtlib/Makefile     Mon Jun 22 19:28:41 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.27 2025/11/02 13:50:46 wiz Exp $
+# $NetBSD: Makefile,v 1.28 2026/06/22 19:28:41 wiz Exp $
 
-DISTNAME=      fmt-12.1.0
+DISTNAME=      fmt-12.2.0
 PKGNAME=       ${DISTNAME:S/fmt/fmtlib/}
 CATEGORIES=    textproc
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=fmtlib/}

Index: pkgsrc/textproc/fmtlib/PLIST
diff -u pkgsrc/textproc/fmtlib/PLIST:1.13 pkgsrc/textproc/fmtlib/PLIST:1.14
--- pkgsrc/textproc/fmtlib/PLIST:1.13   Sun Sep 21 18:14:08 2025
+++ pkgsrc/textproc/fmtlib/PLIST        Mon Jun 22 19:28:41 2026
@@ -1,10 +1,11 @@
-@comment $NetBSD: PLIST,v 1.13 2025/09/21 18:14:08 wiz Exp $
+@comment $NetBSD: PLIST,v 1.14 2026/06/22 19:28:41 wiz Exp $
 include/fmt/args.h
 include/fmt/base.h
 include/fmt/chrono.h
 include/fmt/color.h
 include/fmt/compile.h
 include/fmt/core.h
+include/fmt/fmt-c.h
 include/fmt/format-inl.h
 include/fmt/format.h
 include/fmt/os.h
@@ -17,7 +18,8 @@ lib/cmake/fmt/fmt-config-version.cmake
 lib/cmake/fmt/fmt-config.cmake
 lib/cmake/fmt/fmt-targets-release.cmake
 lib/cmake/fmt/fmt-targets.cmake
+lib/libfmt-c.a
 lib/libfmt.so
-lib/libfmt.so.${PKGVERSION}
 lib/libfmt.so.12
+lib/libfmt.so.${PKGVERSION}
 lib/pkgconfig/fmt.pc

Index: pkgsrc/textproc/fmtlib/distinfo
diff -u pkgsrc/textproc/fmtlib/distinfo:1.28 pkgsrc/textproc/fmtlib/distinfo:1.29
--- pkgsrc/textproc/fmtlib/distinfo:1.28        Sun Nov  2 13:50:46 2025
+++ pkgsrc/textproc/fmtlib/distinfo     Mon Jun 22 19:28:41 2026
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.28 2025/11/02 13:50:46 wiz Exp $
+$NetBSD: distinfo,v 1.29 2026/06/22 19:28:41 wiz Exp $
 
-BLAKE2s (fmt-12.1.0.tar.gz) = 3840b6ecf9162978264d12a3e3476b94354dd3bf09e6c1a396d2c9bbc994c03e
-SHA512 (fmt-12.1.0.tar.gz) = f0da82c545b01692e9fd30fdfb613dbb8dd9716983dcd0ff19ac2a8d36f74beb5540ef38072fdecc1e34191b3682a8542ecbf3a61ef287dbba0a2679d4e023f2
-Size (fmt-12.1.0.tar.gz) = 711419 bytes
+BLAKE2s (fmt-12.2.0.tar.gz) = 4f523f59bc8a504617a503b28fb68271a9b01a19fbd5ddc62048990a98e65d2f
+SHA512 (fmt-12.2.0.tar.gz) = 5ac2ba0f54a484999ed5407d82b77aad170cea49a267decd2c0eedadf3b14413e2a83fcc8e9ca9c16640595e019b8636e160f72314d8be50653324e82ac745eb
+Size (fmt-12.2.0.tar.gz) = 738355 bytes



Home | Main Index | Thread Index | Old Index