diff --git a/ChangeLog.rst b/ChangeLog.rst index 17c261b6..4fc4cb01 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -2,7 +2,8 @@ ------------ * Fixed ambiguous formatter specialization for containers that look like - container adaptors (`#3556 `_, + container adaptors such as ``boost::flat_set`` + (`#3556 `_, `#3561 `_). Thanks `@5chmidti `_. @@ -10,9 +11,21 @@ ``std::chrono::seconds`` (`#3430 `_). Thanks `@patlkli (Patrick Geltinger) `_. -* Added formatter for ``std::vector::reference`` and - ``std::bitset::reference``. - (`#3570 `_). +* Added formatters for proxy references to elements of ``std::vector`` and + ``std::bitset``. (`#3567 `_, + `#3570 `_). + For example (`godbolt `__): + + .. code:: c++ + + #include + #include + + int main() { + auto v = std::vector{true}; + fmt::print("{}", v[0]); + } + Thanks `@phprus (Vladislav Shchapov) `_ and `@felix642 (Félix-Antoine Constantin) `_. @@ -20,20 +33,27 @@ (`#3432 `_). Thanks `@timsong-cpp `_. +* Made ``{}`` and ``{:}`` handled consistently during compile-time checks + (`#3526 `_). + * Disallowed passing temporaries to ``make_format_args`` to improve API safety by preventing dangling references. -* Made floating-point formatting tests more platform-independent - (`#3433 `_, +* Made floating-point and chrono tests less platform-dependent + (`#3337 `_, + `#3433 `_, `#3434 `_). Thanks `@phprus (Vladislav Shchapov) `_. -* Improved and fixed warnings in the floating-point formatter +* Improved the floating-point formatter (`#3448 `_, `#3450 `_). Thanks `@florimond-collette (Florimond Collette) `_. +* Fixed handling of precision for 128-bit ``long double`` + (`#3539 `_). + * Removed remnants of the Grisu floating-point formatter that has been replaced by Dragonbox in earlier versions. @@ -45,7 +65,26 @@ (`#3485 `_). Thanks `@Minty-Meeo `_. -* Optimized format string compilation. +* Optimized format string compilation resulting in up to 40% speed up in + ``format_to`` and ~4x speed up in ``format_to_n`` on concatenation-like + benchmarks (`#3133 `_, + `#3484 `_). + + {fmt} 10.0:: + + --------------------------------------------------------- + Benchmark Time CPU Iterations + --------------------------------------------------------- + BM_format_to 78.9 ns 78.9 ns 8881746 + BM_format_to_n 568 ns 568 ns 1232089 + + {fmt} 10.1:: + + --------------------------------------------------------- + Benchmark Time CPU Iterations + --------------------------------------------------------- + BM_format_to 54.9 ns 54.9 ns 12727944 + BM_format_to_n 133 ns 133 ns 5257795 * Added ``throw_format_error`` to the public API (`#3551 `_). @@ -75,40 +114,55 @@ (`#3467 `_). Thanks `@wenshan1 (Bin Lan) `_. -* Improved documentation (`#3454 `_, +* Improved documentation + (`#3174 `_, + `#3423 `_, + `#3454 `_, `#3458 `_, `#3461 `_, + `#3487 `_, `#3515 `_). Thanks `@zencatalyst (Kasra Hashemi) `_, `@rlalik `_, `@mikecrowe (Mike Crowe) `_. * Improved build and CI configurations - (`#3451 `_, + (`#3449 `_, + `#3451 `_, `#3452 `_, `#3453 `_, `#3459 `_, + `#3481 `_, `#3486 `_, + `#3489 `_, + `#3496 `_, `#3517 `_, `#3523 `_, `#3563 `_). Thanks `@joycebrum (Joyce) `_, `@glebm (Gleb Mazovetskiy) `_, `@phprus (Vladislav Shchapov) `_, + `@petrmanek (Petr Mánek) `_, `@setoye (Alta) `_, `@abouvier (Alexandre Bouvier) `_. * Fixed various warnings and compilation issues - (`#3444 `_, + (`#3408 `_, + `#3424 `_, + `#3444 `_, `#3446 `_, `#3475 `_, `#3482 `_, `#3492 `_, `#3493 `_, - `#3496 `_, `#3508 `_, + `#3509 `_, + `#3533 `_, `#3542 `_, + `#3543 `_, + `#3540 `_, `#3544 `_, + `#3548 `_, `#3549 `_, `#3550 `_, `#3552 `_). @@ -116,7 +170,6 @@ `@hmbj (Hans-Martin B. Jensen) `_, `@Minty-Meeo `_, `@phprus (Vladislav Shchapov) `_, - `@petrmanek (Petr Mánek) `_, `@TobiSchluter (Tobias Schlüter) `_, `@kieranclancy (Kieran Clancy) `_, `@alexeedm (Dmitry Alexeev) `_,