mirror of
https://github.com/fmtlib/fmt.git
synced 2024-11-26 12:10:06 +00:00
Update changelog
This commit is contained in:
parent
bff1de15e7
commit
b998b47116
109
ChangeLog.md
109
ChangeLog.md
@ -1,23 +1,70 @@
|
||||
# 11.0.0 - TBD
|
||||
|
||||
- Added `fmt/base.h` which provides a subset of the API with minimal include
|
||||
dependencies and enough functionality to replace all uses of `*printf`.
|
||||
This brings the compile time of code using {fmt} much closer to the
|
||||
equivalent `printf` code as shown on the following benchmark that compiles
|
||||
100 source files:
|
||||
|
||||
| Method | Compile Time (s) |
|
||||
|--------------|------------------|
|
||||
| printf | 1.6 |
|
||||
| IOStreams | 25.9 |
|
||||
| fmt | 4.8 |
|
||||
| tinyformat | 29.1 |
|
||||
| Boost Format | 55.0 |
|
||||
|
||||
Note that this is purely formatting code and includes. In real projects the
|
||||
difference will be smaller partly because common standard headers will be
|
||||
included in almost any translation unit anyway.
|
||||
|
||||
- Optimized includes in other headers such as `fmt/format.h` which is now
|
||||
roughly equivalent to the old `fmt/core.h`.
|
||||
|
||||
- Improved C++20 module support
|
||||
(https://github.com/fmtlib/fmt/pull/3991,
|
||||
(https://github.com/fmtlib/fmt/issues/3990,
|
||||
https://github.com/fmtlib/fmt/pull/3991,
|
||||
https://github.com/fmtlib/fmt/issues/3993,
|
||||
https://github.com/fmtlib/fmt/pull/3997,
|
||||
https://github.com/fmtlib/fmt/pull/3998). Thanks @yujincheng08.
|
||||
https://github.com/fmtlib/fmt/pull/3998,
|
||||
https://github.com/fmtlib/fmt/pull/4004,
|
||||
https://github.com/fmtlib/fmt/pull/4005). Thanks @yujincheng08.
|
||||
|
||||
- Added an option to replace standard includes with `import std` enabled via
|
||||
the `FMT_IMPORT_STD` macro (https://github.com/fmtlib/fmt/issues/3921,
|
||||
https://github.com/fmtlib/fmt/pull/3928).
|
||||
Thanks @matt77hias.
|
||||
https://github.com/fmtlib/fmt/pull/3928). Thanks @matt77hias.
|
||||
|
||||
- Exported `range_format` and `range_format_kind` from the fmt module
|
||||
(https://github.com/fmtlib/fmt/pull/3970). Thanks @matt77hias.
|
||||
- Exported `fmt::range_format`, `fmt::range_format_kind` and
|
||||
`fmt::compiled_string` from the fmt module
|
||||
(https://github.com/fmtlib/fmt/pull/3970,
|
||||
https://github.com/fmtlib/fmt/pull/3999).
|
||||
Thanks @matt77hias and @yujincheng08.
|
||||
|
||||
- Replaced double buffering with writing directly to a C stream buffer in
|
||||
`std::print`. This may give significant performance improvements ranging
|
||||
from tens of percent to [2x](https://stackoverflow.com/a/78457454/471164)
|
||||
and elimates dynamic memory allocation of the buffer. It is currently
|
||||
enabled for common types with more to come in the upcoming releases.
|
||||
|
||||
- Improved safety of `format_to` when writting to an array
|
||||
(https://github.com/fmtlib/fmt/pull/3805).
|
||||
For example ([godbolt](https://www.godbolt.org/z/cYrn8dWY8)):
|
||||
|
||||
```c++
|
||||
char volkswagen[4];
|
||||
auto result = fmt::format_to(volkswagen, "elephant");
|
||||
```
|
||||
|
||||
no longer results in a buffer oveflow. Instead the output will be truncated
|
||||
and you can get the end iterator and whether truncation occurred from the
|
||||
`result` object. Thanks @ThePhD.
|
||||
|
||||
- Added formatters for `std::chrono::day`, `std::chrono::month`,
|
||||
`std::chrono::year` and `std::chrono::year_month_day`
|
||||
(https://github.com/fmtlib/fmt/issues/3758,
|
||||
https://github.com/fmtlib/fmt/issues/3772,
|
||||
https://github.com/fmtlib/fmt/pull/3906). For example:
|
||||
https://github.com/fmtlib/fmt/pull/3906,
|
||||
https://github.com/fmtlib/fmt/pull/3913). For example:
|
||||
|
||||
```c++
|
||||
#include <fmt/chrono.h>
|
||||
@ -64,9 +111,6 @@
|
||||
and allocators (https://github.com/fmtlib/fmt/issues/3938,
|
||||
https://github.com/fmtlib/fmt/pull/3943). Thanks @dieram3.
|
||||
|
||||
- Improved safety of `format_to` when writting to an array
|
||||
(https://github.com/fmtlib/fmt/pull/3805). Thanks @ThePhD.
|
||||
|
||||
- Added support for character range formatting
|
||||
(https://github.com/fmtlib/fmt/issues/3857,
|
||||
https://github.com/fmtlib/fmt/pull/3863). Thanks @js324.
|
||||
@ -87,15 +131,16 @@
|
||||
(https://github.com/fmtlib/fmt/issues/3802,
|
||||
https://github.com/fmtlib/fmt/pull/3946). Thanks @Arghnews.
|
||||
|
||||
- Moved range and iterator overloads of `fmt::join` to `fmt/ranges.h`, next
|
||||
to other overloads.
|
||||
|
||||
- Fixed hanling of types with `begin` returning `void` such as Eigen matrices
|
||||
(https://github.com/fmtlib/fmt/pull/3964). Thanks @Arghnews.
|
||||
(https://github.com/fmtlib/fmt/issues/3839,
|
||||
https://github.com/fmtlib/fmt/pull/3964). Thanks @Arghnews.
|
||||
|
||||
- Added a `formattable` concept (https://github.com/fmtlib/fmt/pull/3974).
|
||||
Thanks @matt77hias.
|
||||
|
||||
- Removed dependency on `<memory>` for `std::allocator_traits` when possible
|
||||
(https://github.com/fmtlib/fmt/pull/3804). Thanks @phprus.
|
||||
|
||||
- Added support for `__float128` (https://github.com/fmtlib/fmt/issues/3494).
|
||||
|
||||
- Fixed rounding issues when formatting `long double` with fixed precision
|
||||
@ -105,12 +150,27 @@
|
||||
(https://github.com/fmtlib/fmt/issues/3948,
|
||||
https://github.com/fmtlib/fmt/pull/3951). Thanks @alexdewar.
|
||||
|
||||
- Removed dependency on `<memory>` for `std::allocator_traits` when possible
|
||||
(https://github.com/fmtlib/fmt/pull/3804). Thanks @phprus.
|
||||
|
||||
- Enabled compile-time checks in formatting functions that take text colors and
|
||||
styles.
|
||||
|
||||
- Deprecated wide stream overloads of `fmt::print` that take text styles.
|
||||
|
||||
- Made format string compilation work with clang 12 and later despite
|
||||
only partial non-type template parameter support
|
||||
(https://github.com/fmtlib/fmt/issues/4000,
|
||||
https://github.com/fmtlib/fmt/pull/4001). Thanks @yujincheng08.
|
||||
|
||||
- Made `iterator_buffer`'s move constructor `noexcept`
|
||||
(https://github.com/fmtlib/fmt/pull/3808). Thanks @waywardmonkeys.
|
||||
|
||||
- Started enforcing that `formatter::format` is const for compatibility with
|
||||
`std::format` (https://github.com/fmtlib/fmt/issues/3447).
|
||||
|
||||
- Added `fmt::basic_format_arg::visit` and deprecated `fmt::visit_format_arg`.
|
||||
|
||||
- Made `fmt::basic_string_view` not constructible from `nullptr` for
|
||||
consistency with `std::string_view` in C++23
|
||||
(https://github.com/fmtlib/fmt/pull/3846). Thanks @dalle.
|
||||
@ -149,9 +209,10 @@
|
||||
https://github.com/fmtlib/fmt/issues/3894,
|
||||
https://github.com/fmtlib/fmt/pull/3895,
|
||||
https://github.com/fmtlib/fmt/pull/3905,
|
||||
https://github.com/fmtlib/fmt/issues/3942).
|
||||
https://github.com/fmtlib/fmt/issues/3942,
|
||||
https://github.com/fmtlib/fmt/pull/4008).
|
||||
Thanks @zencatalyst, WolleTD, @tupaschoal, @Dobiasd, @frank-weinberg, @bbolli,
|
||||
@phprus, @waywardmonkeys and @js324.
|
||||
@phprus, @waywardmonkeys, @js324 and @tchaikov.
|
||||
|
||||
- Improved CI and tests
|
||||
(https://github.com/fmtlib/fmt/issues/3878,
|
||||
@ -159,7 +220,8 @@
|
||||
https://github.com/fmtlib/fmt/issues/3897,
|
||||
https://github.com/fmtlib/fmt/pull/3979,
|
||||
https://github.com/fmtlib/fmt/pull/3980,
|
||||
https://github.com/fmtlib/fmt/pull/3988).
|
||||
https://github.com/fmtlib/fmt/pull/3988,
|
||||
https://github.com/fmtlib/fmt/pull/4010).
|
||||
Thanks @vgorrX, @waywardmonkeys, @tchaikov and @phprus.
|
||||
|
||||
- Fixed buffer overflow when using format string compilation with debug format
|
||||
@ -179,7 +241,8 @@
|
||||
https://github.com/fmtlib/fmt/pull/3907). Thanks @phprus and @xTachyon.
|
||||
|
||||
- Fixed various warnings and compilation issues
|
||||
(https://github.com/fmtlib/fmt/issues/3769,
|
||||
(https://github.com/fmtlib/fmt/issues/3685,
|
||||
https://github.com/fmtlib/fmt/issues/3769,
|
||||
https://github.com/fmtlib/fmt/issues/3796,
|
||||
https://github.com/fmtlib/fmt/issues/3803,
|
||||
https://github.com/fmtlib/fmt/pull/3806,
|
||||
@ -206,14 +269,15 @@
|
||||
https://github.com/fmtlib/fmt/issues/3925,
|
||||
https://github.com/fmtlib/fmt/pull/3930,
|
||||
https://github.com/fmtlib/fmt/pull/3931,
|
||||
https://github.com/fmtlib/fmt/pull/3933,
|
||||
https://github.com/fmtlib/fmt/issues/3935,
|
||||
https://github.com/fmtlib/fmt/pull/3937,
|
||||
https://github.com/fmtlib/fmt/pull/3967,
|
||||
https://github.com/fmtlib/fmt/pull/3968,
|
||||
https://github.com/fmtlib/fmt/pull/3972,
|
||||
https://github.com/fmtlib/fmt/pull/3983,).
|
||||
https://github.com/fmtlib/fmt/pull/3983).
|
||||
Thanks @hmbj, @phprus, @res2k, @Baardi, @matt77hias, @waywardmonkeys, @hmbj,
|
||||
@yakra, @prlw1, @Arghnews, @mtillmann0, @ShifftC and @eepp.
|
||||
@yakra, @prlw1, @Arghnews, @mtillmann0, @ShifftC, @eepp and @jimmy-park.
|
||||
|
||||
# 10.2.1 - 2024-01-04
|
||||
|
||||
@ -936,8 +1000,9 @@
|
||||
(https://github.com/fmtlib/fmt/issues/3108,
|
||||
https://github.com/fmtlib/fmt/issues/3169,
|
||||
https://github.com/fmtlib/fmt/pull/3243).
|
||||
https://github.com/fmtlib/fmt/pull/3404).
|
||||
Thanks @Cleroth and @Vertexwahn.
|
||||
https://github.com/fmtlib/fmt/pull/3404,
|
||||
https://github.com/fmtlib/fmt/pull/4002).
|
||||
Thanks @Cleroth, @Vertexwahn and @yujincheng08.
|
||||
|
||||
- Improved build configuration and tests
|
||||
(https://github.com/fmtlib/fmt/pull/3118,
|
||||
|
Loading…
Reference in New Issue
Block a user