mirror of
https://github.com/fmtlib/fmt.git
synced 2024-09-19 20:39:59 +00:00
Update changelog
This commit is contained in:
parent
e0b66e8f83
commit
a245a8d4b9
96
ChangeLog.md
96
ChangeLog.md
@ -25,6 +25,7 @@
|
|||||||
(https://github.com/fmtlib/fmt/issues/3990,
|
(https://github.com/fmtlib/fmt/issues/3990,
|
||||||
https://github.com/fmtlib/fmt/pull/3991,
|
https://github.com/fmtlib/fmt/pull/3991,
|
||||||
https://github.com/fmtlib/fmt/issues/3993,
|
https://github.com/fmtlib/fmt/issues/3993,
|
||||||
|
https://github.com/fmtlib/fmt/pull/3994,
|
||||||
https://github.com/fmtlib/fmt/pull/3997,
|
https://github.com/fmtlib/fmt/pull/3997,
|
||||||
https://github.com/fmtlib/fmt/pull/3998,
|
https://github.com/fmtlib/fmt/pull/3998,
|
||||||
https://github.com/fmtlib/fmt/pull/4004,
|
https://github.com/fmtlib/fmt/pull/4004,
|
||||||
@ -35,23 +36,37 @@
|
|||||||
https://github.com/fmtlib/fmt/pull/3928). Thanks @matt77hias.
|
https://github.com/fmtlib/fmt/pull/3928). Thanks @matt77hias.
|
||||||
|
|
||||||
- Exported `fmt::range_format`, `fmt::range_format_kind` and
|
- Exported `fmt::range_format`, `fmt::range_format_kind` and
|
||||||
`fmt::compiled_string` from the fmt module
|
`fmt::compiled_string` from the `fmt` module
|
||||||
(https://github.com/fmtlib/fmt/pull/3970,
|
(https://github.com/fmtlib/fmt/pull/3970,
|
||||||
https://github.com/fmtlib/fmt/pull/3999).
|
https://github.com/fmtlib/fmt/pull/3999).
|
||||||
Thanks @matt77hias and @yujincheng08.
|
Thanks @matt77hias and @yujincheng08.
|
||||||
|
|
||||||
- Replaced double buffering with writing directly to a C stream buffer in
|
- Improved integration with stdio in `fmt::print`, enabling direct writes
|
||||||
`std::print`. This may give significant performance improvements ranging
|
into a C stream buffer in common cases. This may give significant
|
||||||
from tens of percent to [2x](https://stackoverflow.com/a/78457454/471164)
|
performance improvements ranging from tens of percent to [2x](
|
||||||
and elimates dynamic memory allocation of the buffer. It is currently
|
https://stackoverflow.com/a/78457454/471164) and eliminates dynamic memory
|
||||||
enabled for common types with more to come in the upcoming releases.
|
allocations on the buffer level. It is currently enabled for built-in and
|
||||||
|
string types with wider availability coming up in future releases.
|
||||||
|
|
||||||
- Improved safety of `format_to` when writting to an array
|
For example, it gives ~24% improvement on a [simple benchmark](
|
||||||
|
https://isocpp.org/files/papers/P3107R5.html#perf) compiled with Apple clang
|
||||||
|
version 15.0.0 (clang-1500.1.0.2.5) and run on macOS 14.2.1:
|
||||||
|
|
||||||
|
```
|
||||||
|
-------------------------------------------------------
|
||||||
|
Benchmark Time CPU Iterations
|
||||||
|
-------------------------------------------------------
|
||||||
|
printf 81.8 ns 81.5 ns 8496899
|
||||||
|
fmt::print (10.*) 63.8 ns 61.9 ns 11524151
|
||||||
|
fmt::print (11.0) 51.3 ns 51.0 ns 13846580
|
||||||
|
```
|
||||||
|
|
||||||
|
- Improved safety of `fmt::format_to` when writting to an array
|
||||||
(https://github.com/fmtlib/fmt/pull/3805).
|
(https://github.com/fmtlib/fmt/pull/3805).
|
||||||
For example ([godbolt](https://www.godbolt.org/z/cYrn8dWY8)):
|
For example ([godbolt](https://www.godbolt.org/z/cYrn8dWY8)):
|
||||||
|
|
||||||
```c++
|
```c++
|
||||||
char volkswagen[4];
|
auto volkswagen = char[4];
|
||||||
auto result = fmt::format_to(volkswagen, "elephant");
|
auto result = fmt::format_to(volkswagen, "elephant");
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -59,6 +74,30 @@
|
|||||||
and you can get the end iterator and whether truncation occurred from the
|
and you can get the end iterator and whether truncation occurred from the
|
||||||
`result` object. Thanks @ThePhD.
|
`result` object. Thanks @ThePhD.
|
||||||
|
|
||||||
|
- Enabled Unicode support by default in MSVC, bringing it on par with other
|
||||||
|
compilers and making it unnecessary for users to enable it explicitly.
|
||||||
|
Most of {fmt} is encoding-agnostic but this prevents mojibake in places
|
||||||
|
where encoding matters such as path formatting and terminal output.
|
||||||
|
You can control the Unicode support via the CMake `FMT_UNICODE` option.
|
||||||
|
Note that some {fmt} packages such as the one in vcpkg have already been
|
||||||
|
compiled with Unicode enabled.
|
||||||
|
|
||||||
|
- Added a formatter for `std::expected`
|
||||||
|
(https://github.com/fmtlib/fmt/pull/3834. Thanks @dominicpoeschko.
|
||||||
|
|
||||||
|
- Added a formatter for `std::complex`
|
||||||
|
(https://github.com/fmtlib/fmt/issues/1467,
|
||||||
|
https://github.com/fmtlib/fmt/issues/3886,
|
||||||
|
https://github.com/fmtlib/fmt/pull/3892,
|
||||||
|
https://github.com/fmtlib/fmt/pull/3900). Thanks @phprus.
|
||||||
|
|
||||||
|
- Added a formatter for `std::type_info`
|
||||||
|
(https://github.com/fmtlib/fmt/pull/3978). Thanks @matt77hias.
|
||||||
|
|
||||||
|
- Specialized `formatter` for `std::basic_string` types with custom traits
|
||||||
|
and allocators (https://github.com/fmtlib/fmt/issues/3938,
|
||||||
|
https://github.com/fmtlib/fmt/pull/3943). Thanks @dieram3.
|
||||||
|
|
||||||
- Added formatters for `std::chrono::day`, `std::chrono::month`,
|
- Added formatters for `std::chrono::day`, `std::chrono::month`,
|
||||||
`std::chrono::year` and `std::chrono::year_month_day`
|
`std::chrono::year` and `std::chrono::year_month_day`
|
||||||
(https://github.com/fmtlib/fmt/issues/3758,
|
(https://github.com/fmtlib/fmt/issues/3758,
|
||||||
@ -95,22 +134,6 @@
|
|||||||
- Improved handling of `time_point::min()`
|
- Improved handling of `time_point::min()`
|
||||||
(https://github.com/fmtlib/fmt/issues/3282).
|
(https://github.com/fmtlib/fmt/issues/3282).
|
||||||
|
|
||||||
- Added a formatter for `std::expected`
|
|
||||||
(https://github.com/fmtlib/fmt/pull/3834. Thanks @dominicpoeschko.
|
|
||||||
|
|
||||||
- Added a formatter for `std::complex`
|
|
||||||
(https://github.com/fmtlib/fmt/issues/1467,
|
|
||||||
https://github.com/fmtlib/fmt/issues/3886,
|
|
||||||
https://github.com/fmtlib/fmt/pull/3892,
|
|
||||||
https://github.com/fmtlib/fmt/pull/3900). Thanks @phprus.
|
|
||||||
|
|
||||||
- Added a formatter for `std::type_info`
|
|
||||||
(https://github.com/fmtlib/fmt/pull/3978). Thanks @matt77hias.
|
|
||||||
|
|
||||||
- Specialized `formatter` for `std::basic_string` types with custom traits
|
|
||||||
and allocators (https://github.com/fmtlib/fmt/issues/3938,
|
|
||||||
https://github.com/fmtlib/fmt/pull/3943). Thanks @dieram3.
|
|
||||||
|
|
||||||
- Added support for character range formatting
|
- Added support for character range formatting
|
||||||
(https://github.com/fmtlib/fmt/issues/3857,
|
(https://github.com/fmtlib/fmt/issues/3857,
|
||||||
https://github.com/fmtlib/fmt/pull/3863). Thanks @js324.
|
https://github.com/fmtlib/fmt/pull/3863). Thanks @js324.
|
||||||
@ -138,7 +161,7 @@
|
|||||||
(https://github.com/fmtlib/fmt/issues/3839,
|
(https://github.com/fmtlib/fmt/issues/3839,
|
||||||
https://github.com/fmtlib/fmt/pull/3964). Thanks @Arghnews.
|
https://github.com/fmtlib/fmt/pull/3964). Thanks @Arghnews.
|
||||||
|
|
||||||
- Added a `formattable` concept (https://github.com/fmtlib/fmt/pull/3974).
|
- Added an `fmt::formattable` concept (https://github.com/fmtlib/fmt/pull/3974).
|
||||||
Thanks @matt77hias.
|
Thanks @matt77hias.
|
||||||
|
|
||||||
- Added support for `__float128` (https://github.com/fmtlib/fmt/issues/3494).
|
- Added support for `__float128` (https://github.com/fmtlib/fmt/issues/3494).
|
||||||
@ -163,11 +186,11 @@
|
|||||||
(https://github.com/fmtlib/fmt/issues/4000,
|
(https://github.com/fmtlib/fmt/issues/4000,
|
||||||
https://github.com/fmtlib/fmt/pull/4001). Thanks @yujincheng08.
|
https://github.com/fmtlib/fmt/pull/4001). Thanks @yujincheng08.
|
||||||
|
|
||||||
- Made `iterator_buffer`'s move constructor `noexcept`
|
- Made `fmt::iterator_buffer`'s move constructor `noexcept`
|
||||||
(https://github.com/fmtlib/fmt/pull/3808). Thanks @waywardmonkeys.
|
(https://github.com/fmtlib/fmt/pull/3808). Thanks @waywardmonkeys.
|
||||||
|
|
||||||
- Started enforcing that `formatter::format` is const for compatibility with
|
- Started enforcing that `formatter::format` is const for compatibility
|
||||||
`std::format` (https://github.com/fmtlib/fmt/issues/3447).
|
with `std::format` (https://github.com/fmtlib/fmt/issues/3447).
|
||||||
|
|
||||||
- Added `fmt::basic_format_arg::visit` and deprecated `fmt::visit_format_arg`.
|
- Added `fmt::basic_format_arg::visit` and deprecated `fmt::visit_format_arg`.
|
||||||
|
|
||||||
@ -175,18 +198,19 @@
|
|||||||
consistency with `std::string_view` in C++23
|
consistency with `std::string_view` in C++23
|
||||||
(https://github.com/fmtlib/fmt/pull/3846). Thanks @dalle.
|
(https://github.com/fmtlib/fmt/pull/3846). Thanks @dalle.
|
||||||
|
|
||||||
- Fixed `group_digits` for negative integers
|
- Fixed `fmt::group_digits` for negative integers
|
||||||
(https://github.com/fmtlib/fmt/issues/3891,
|
(https://github.com/fmtlib/fmt/issues/3891,
|
||||||
https://github.com/fmtlib/fmt/pull/3901). Thanks @phprus.
|
https://github.com/fmtlib/fmt/pull/3901). Thanks @phprus.
|
||||||
|
|
||||||
- Fixed handling of negative ids in `basic_format_args::get`
|
- Fixed handling of negative ids in `fmt::basic_format_args::get`
|
||||||
(https://github.com/fmtlib/fmt/pull/3945). Thanks @marlenecota.
|
(https://github.com/fmtlib/fmt/pull/3945). Thanks @marlenecota.
|
||||||
|
|
||||||
- Improved named argument validation
|
- Improved named argument validation
|
||||||
(https://github.com/fmtlib/fmt/issues/3817).
|
(https://github.com/fmtlib/fmt/issues/3817).
|
||||||
|
|
||||||
- Disabled copy contruction/assignment for `format_arg_store` and fixed moved
|
- Disabled copy contruction/assignment for `fmt::format_arg_store` and
|
||||||
construction (https://github.com/fmtlib/fmt/pull/3833). Thanks @ivafanas.
|
fixed moved construction (https://github.com/fmtlib/fmt/pull/3833).
|
||||||
|
Thanks @ivafanas.
|
||||||
|
|
||||||
- Worked around a locale issue in RHEL/devtoolset
|
- Worked around a locale issue in RHEL/devtoolset
|
||||||
(https://github.com/fmtlib/fmt/issues/3858,
|
(https://github.com/fmtlib/fmt/issues/3858,
|
||||||
@ -195,6 +219,8 @@
|
|||||||
- Added RTTI detection for MSVC (https://github.com/fmtlib/fmt/pull/3821,
|
- Added RTTI detection for MSVC (https://github.com/fmtlib/fmt/pull/3821,
|
||||||
https://github.com/fmtlib/fmt/pull/3963). Thanks @edo9300.
|
https://github.com/fmtlib/fmt/pull/3963). Thanks @edo9300.
|
||||||
|
|
||||||
|
- Migrated the documentation from Sphinx to MkDocs.
|
||||||
|
|
||||||
- Improved documentation and README
|
- Improved documentation and README
|
||||||
(https://github.com/fmtlib/fmt/issues/3775,
|
(https://github.com/fmtlib/fmt/issues/3775,
|
||||||
https://github.com/fmtlib/fmt/pull/3784,
|
https://github.com/fmtlib/fmt/pull/3784,
|
||||||
@ -275,9 +301,11 @@
|
|||||||
https://github.com/fmtlib/fmt/pull/3967,
|
https://github.com/fmtlib/fmt/pull/3967,
|
||||||
https://github.com/fmtlib/fmt/pull/3968,
|
https://github.com/fmtlib/fmt/pull/3968,
|
||||||
https://github.com/fmtlib/fmt/pull/3972,
|
https://github.com/fmtlib/fmt/pull/3972,
|
||||||
https://github.com/fmtlib/fmt/pull/3983).
|
https://github.com/fmtlib/fmt/pull/3983,
|
||||||
|
https://github.com/fmtlib/fmt/pull/3995).
|
||||||
Thanks @hmbj, @phprus, @res2k, @Baardi, @matt77hias, @waywardmonkeys, @hmbj,
|
Thanks @hmbj, @phprus, @res2k, @Baardi, @matt77hias, @waywardmonkeys, @hmbj,
|
||||||
@yakra, @prlw1, @Arghnews, @mtillmann0, @ShifftC, @eepp and @jimmy-park.
|
@yakra, @prlw1, @Arghnews, @mtillmann0, @ShifftC, @eepp, @jimmy-park and
|
||||||
|
@ChristianGebhardt.
|
||||||
|
|
||||||
# 10.2.1 - 2024-01-04
|
# 10.2.1 - 2024-01-04
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user