|
1 | | -10.0.0 - TBD |
2 | | ------------- |
| 1 | +10.0.0 - 2023-05-09 |
| 2 | +------------------- |
3 | 3 |
|
4 | 4 | * Replaced Grisu with a new floating-point formatting algorithm for given |
5 | 5 | precision (`#3262 <https://github.com/fmtlib/fmt/issues/3262>`_, |
6 | 6 | `#2750 <https://github.com/fmtlib/fmt/issues/2750>`_, |
7 | | - `#3269 <https://github.com/fmtlib/fmt/pull/3269>`_). |
| 7 | + `#3269 <https://github.com/fmtlib/fmt/pull/3269>`_, |
| 8 | + `#3276 <https://github.com/fmtlib/fmt/pull/3276>`_). |
8 | 9 | The new algorithm is based on Dragonbox already used for the |
9 | 10 | shortest representation and gives substantial performance improvement: |
10 | 11 |
|
|
20 | 21 | * Replaced ``snprintf``-based hex float formatter with an internal |
21 | 22 | implementation (`#3179 <https://github.com/fmtlib/fmt/pull/3179>`_, |
22 | 23 | `#3203 <https://github.com/fmtlib/fmt/pull/3203>`_). |
| 24 | + This removes the last usage of ``s(n)printf`` in {fmt}. |
23 | 25 | Thanks `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_. |
24 | 26 |
|
25 | 27 | * Fixed alignment of floating-point numbers with localization |
|
69 | 71 |
|
70 | 72 | * Added support for fill, align and width to the time point formatter |
71 | 73 | (`#3237 <https://github.com/fmtlib/fmt/issues/3237>`_, |
72 | | - `#3260 <https://github.com/fmtlib/fmt/pull/3260>`_). |
| 74 | + `#3260 <https://github.com/fmtlib/fmt/pull/3260>`_, |
| 75 | + `#3275 <https://github.com/fmtlib/fmt/pull/3275>`_). |
73 | 76 | For example (`godbolt <https://godbolt.org/z/rKP6MGz6c>`__): |
74 | 77 |
|
75 | 78 | .. code:: c++ |
|
105 | 108 | `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_, |
106 | 109 | `@BRevzin (Barry Revzin) <https://github.com/BRevzin>`_. |
107 | 110 |
|
108 | | -* Add precision support to ``%S`` |
| 111 | +* Added precision support to ``%S`` |
109 | 112 | (`#3148 <https://github.com/fmtlib/fmt/pull/3148>`_). |
110 | 113 | Thanks `@SappyJoy (Stepan Ponomaryov) <https://github.com/SappyJoy>`_ |
111 | 114 |
|
|
125 | 128 | `#3222 <https://github.com/fmtlib/fmt/pull/3222>`_). |
126 | 129 | Thanks `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_. |
127 | 130 |
|
128 | | -* Improved validation of format specifiers for `std::chrono::duration` |
| 131 | +* Improved validation of format specifiers for ``std::chrono::duration`` |
129 | 132 | (`#3219 <https://github.com/fmtlib/fmt/issues/3219>`_, |
130 | 133 | `#3232 <https://github.com/fmtlib/fmt/pull/3232>`_). |
131 | 134 | Thanks `@ShawnZhong (Shawn Zhong) <https://github.com/ShawnZhong>`_. |
132 | 135 |
|
| 136 | +* Fixed formatting of time points before the epoch |
| 137 | + (`#3117 <https://github.com/fmtlib/fmt/issues/3117>`_, |
| 138 | + `#3261 <https://github.com/fmtlib/fmt/pull/3261>`_). |
| 139 | + For example (`godbolt <https://godbolt.org/z/f7bcznb3W>`__): |
| 140 | + |
| 141 | + .. code:: c++ |
| 142 | + |
| 143 | + #include <fmt/chrono.h> |
| 144 | + |
| 145 | + int main() { |
| 146 | + auto t = std::chrono::system_clock::from_time_t(0) - |
| 147 | + std::chrono::milliseconds(250); |
| 148 | + fmt::print("{:%S}\n", t); // prints 59.750000000 |
| 149 | + } |
| 150 | + |
| 151 | + Thanks `@ShawnZhong (Shawn Zhong) <https://github.com/ShawnZhong>`_. |
| 152 | + |
| 153 | +* Experimental: implemented glibc extension for padding seconds, minutes and |
| 154 | + hours (`#2959 <https://github.com/fmtlib/fmt/issues/2959>`_, |
| 155 | + `#3271 <https://github.com/fmtlib/fmt/pull/3271>`_). |
| 156 | + Thanks `@ShawnZhong (Shawn Zhong) <https://github.com/ShawnZhong>`_. |
| 157 | + |
133 | 158 | * Added a formatter for ``std::exception`` |
134 | 159 | (`#2977 <https://github.com/fmtlib/fmt/issues/2977>`_, |
135 | 160 | `#3012 <https://github.com/fmtlib/fmt/issues/3012>`_, |
|
183 | 208 |
|
184 | 209 | Thanks `@ShawnZhong (Shawn Zhong) <https://github.com/ShawnZhong>`_. |
185 | 210 |
|
| 211 | +* Added a formatter for ``std::optional`` to ``fmt/std.h``. |
| 212 | + Thanks `@tom-huntington <https://github.com/tom-huntington>`_. |
| 213 | + |
186 | 214 | * Fixed formatting of valueless by exception variants |
187 | 215 | (`#3347 <https://github.com/fmtlib/fmt/pull/3347>`_). |
188 | 216 | Thanks `@TheOmegaCarrot <https://github.com/TheOmegaCarrot>`_. |
|
205 | 233 |
|
206 | 234 | * Improved handling of invalid Unicode in paths. |
207 | 235 |
|
208 | | -* Fixed formatting of time points before the epoch |
209 | | - (`#3117 <https://github.com/fmtlib/fmt/issues/3117>`_, |
210 | | - `#3261 <https://github.com/fmtlib/fmt/pull/3261>`_). |
211 | | - For example (`godbolt <https://godbolt.org/z/f7bcznb3W>`__): |
212 | | - |
213 | | - .. code:: c++ |
214 | | - |
215 | | - #include <fmt/chrono.h> |
216 | | - |
217 | | - int main() { |
218 | | - auto t = std::chrono::system_clock::from_time_t(0) - |
219 | | - std::chrono::milliseconds(250); |
220 | | - fmt::print("{:%S}\n", t); // prints 59.750000000 |
221 | | - } |
222 | | - |
223 | | - Thanks `@ShawnZhong (Shawn Zhong) <https://github.com/ShawnZhong>`_. |
| 236 | +* Enabled compile-time checks on Apple clang 14 and later |
| 237 | + (`#3331 <https://github.com/fmtlib/fmt/pull/3331>`_). |
| 238 | + Thanks `@cloyce (Cloyce D. Spradling) <https://github.com/cloyce>`_. |
224 | 239 |
|
225 | 240 | * Improved compile-time checks of named arguments |
226 | 241 | (`#3105 <https://github.com/fmtlib/fmt/issues/3105>`_, |
|
274 | 289 | ``basic_format_string`` (`#3111 <https://github.com/fmtlib/fmt/pull/3111>`_). |
275 | 290 | Thanks `@huangqinjin <https://github.com/huangqinjin>`_. |
276 | 291 |
|
| 292 | +* Added ``println`` for compatibility with C++23 |
| 293 | + (`#3267 <https://github.com/fmtlib/fmt/pull/3267>`_). |
| 294 | + Thanks `@ShawnZhong (Shawn Zhong) <https://github.com/ShawnZhong>`_. |
| 295 | + |
| 296 | +* Renamed the ``FMT_EXPORT`` macro for shared library usage to |
| 297 | + ``FMT_LIB_EXPORT``. |
| 298 | + |
277 | 299 | * Improved documentation |
278 | 300 | (`#3108 <https://github.com/fmtlib/fmt/issues/3108>`_, |
279 | 301 | `#3169 <https://github.com/fmtlib/fmt/issues/3169>`_, |
|
292 | 314 | `#3207 <https://github.com/fmtlib/fmt/pull/3207>`_, |
293 | 315 | `#3210 <https://github.com/fmtlib/fmt/pull/3210>`_, |
294 | 316 | `#3240 <https://github.com/fmtlib/fmt/pull/3240>`_, |
| 317 | + `#3256 <https://github.com/fmtlib/fmt/pull/3256>`_, |
| 318 | + `#3264 <https://github.com/fmtlib/fmt/pull/3264>`_, |
295 | 319 | `#3299 <https://github.com/fmtlib/fmt/issues/3299>`_, |
296 | 320 | `#3302 <https://github.com/fmtlib/fmt/pull/3302>`_, |
| 321 | + `#3312 <https://github.com/fmtlib/fmt/pull/3312>`_, |
297 | 322 | `#3317 <https://github.com/fmtlib/fmt/issues/3317>`_, |
298 | 323 | `#3328 <https://github.com/fmtlib/fmt/pull/3328>`_, |
| 324 | + `#3333 <https://github.com/fmtlib/fmt/pull/3333>`_, |
| 325 | + `#3369 <https://github.com/fmtlib/fmt/pull/3369>`_, |
299 | 326 | `#3373 <https://github.com/fmtlib/fmt/issues/3373>`_, |
300 | 327 | `#3395 <https://github.com/fmtlib/fmt/pull/3395>`_, |
301 | 328 | `#3406 <https://github.com/fmtlib/fmt/pull/3406>`_, |
|
304 | 331 | `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_, |
305 | 332 | `@DavidKorczynski <https://github.com/DavidKorczynski>`_, |
306 | 333 | `@ChrisThrasher (Chris Thrasher) <https://github.com/ChrisThrasher>`_, |
| 334 | + `@FrancoisCarouge (François Carouge) <https://github.com/FrancoisCarouge>`_, |
| 335 | + `@kennyweiss (Kenny Weiss) <https://github.com/kennyweiss>`_, |
| 336 | + `@luzpaz <https://github.com/luzpaz>`_, |
| 337 | + `@codeinred (Alecto Irene Perez) <https://github.com/codeinred>`_, |
| 338 | + `@Mixaill (Mikhail Paulyshka) <https://github.com/Mixaill>`_, |
307 | 339 | `@joycebrum (Joyce) <https://github.com/joycebrum>`_, |
308 | 340 | `@kevinhwang (Kevin Hwang) <https://github.com/kevinhwang>`_, |
309 | 341 | `@Vertexwahn <https://github.com/Vertexwahn>`_. |
310 | 342 |
|
311 | | -* Fixed a regression in handling empty format specifiers after a colon (`{:}`) |
| 343 | +* Fixed a regression in handling empty format specifiers after a colon (``{:}``) |
312 | 344 | (`#3086 <https://github.com/fmtlib/fmt/pull/3086>`_). |
313 | 345 | Thanks `@oxidase (Michael Krasnyk) <https://github.com/oxidase>`_. |
314 | 346 |
|
|
354 | 386 | `#3226 <https://github.com/fmtlib/fmt/issues/3226>`_, |
355 | 387 | `#3228 <https://github.com/fmtlib/fmt/issues/3228>`_, |
356 | 388 | `#3229 <https://github.com/fmtlib/fmt/pull/3229>`_, |
| 389 | + `#3259 <https://github.com/fmtlib/fmt/pull/3259>`_, |
357 | 390 | `#3274 <https://github.com/fmtlib/fmt/issues/3274>`_, |
358 | 391 | `#3287 <https://github.com/fmtlib/fmt/issues/3287>`_, |
359 | 392 | `#3288 <https://github.com/fmtlib/fmt/pull/3288>`_, |
360 | 393 | `#3292 <https://github.com/fmtlib/fmt/issues/3292>`_, |
361 | 394 | `#3295 <https://github.com/fmtlib/fmt/pull/3295>`_, |
| 395 | + `#3296 <https://github.com/fmtlib/fmt/pull/3296>`_, |
362 | 396 | `#3298 <https://github.com/fmtlib/fmt/issues/3298>`_, |
363 | 397 | `#3325 <https://github.com/fmtlib/fmt/issues/3325>`_, |
364 | 398 | `#3326 <https://github.com/fmtlib/fmt/pull/3326>`_, |
|
370 | 404 | `#3362 <https://github.com/fmtlib/fmt/pull/3362>`_, |
371 | 405 | `#3365 <https://github.com/fmtlib/fmt/issues/3365>`_, |
372 | 406 | `#3366 <https://github.com/fmtlib/fmt/pull/3366>`_, |
| 407 | + `#3374 <https://github.com/fmtlib/fmt/pull/3374>`_, |
373 | 408 | `#3377 <https://github.com/fmtlib/fmt/issues/3377>`_, |
374 | 409 | `#3378 <https://github.com/fmtlib/fmt/pull/3378>`_, |
375 | 410 | `#3381 <https://github.com/fmtlib/fmt/issues/3381>`_, |
|
387 | 422 | `@Youw (Ihor Dutchak) <https://github.com/Youw>`_, |
388 | 423 | `@thesmurph <https://github.com/thesmurph>`_, |
389 | 424 | `@czudziakm (Maksymilian Czudziak) <https://github.com/czudziakm>`_, |
| 425 | + `@Roman-Koshelev <https://github.com/Roman-Koshelev>`_, |
390 | 426 | `@chronoxor (Ivan Shynkarenka) <https://github.com/chronoxor>`_, |
391 | 427 | `@ShawnZhong (Shawn Zhong) <https://github.com/ShawnZhong>`_, |
| 428 | + `@russelltg (Russell Greene) <https://github.com/russelltg>`_, |
392 | 429 | `@glebm (Gleb Mazovetskiy) <https://github.com/glebm>`_, |
393 | 430 | `@tmartin-gh <https://github.com/tmartin-gh>`_, |
394 | 431 | `@Zhaojun-Liu (June Liu) <https://github.com/Zhaojun-Liu>`_, |
|
0 commit comments