llvm-project/libcxx/docs/Status/FormatIssues.csv
Mark de Wever ad76a85954
[libc++][format] Improves escaping. (#88283)
The change increments the size of the lookup table considerably. The
table has an "upper boundary" check. The removal of the code units with
the property Grapheme_Extend=Yes removes the range E0100..E01EF. This
breaks the trailing large continuous section in two parts. This will be
improved in a followup patch.

Implements:
- P2713R1 Escaping improvements in std::format
- LWG3965 Incorrect example in [format.string.escaped] p3 for formatting
of combining characters

```
---------------------------------------------------------
Benchmark                           Before          After    
---------------------------------------------------------
BM_ascii_escaped<char>            95696 ns      110704 ns
BM_unicode_escaped<char>          89311 ns      101371 ns
BM_cyrillic_escaped<char>         58633 ns       63329 ns
BM_japanese_escaped<char>         44500 ns       41223 ns
BM_emoji_escaped<char>            99156 ns      111022 ns
BM_ascii_escaped<wchar_t>         92245 ns      112441 ns
BM_unicode_escaped<wchar_t>       80970 ns      102776 ns
BM_cyrillic_escaped<wchar_t>      51253 ns       58977 ns
BM_japanese_escaped<wchar_t>      37252 ns       36885 ns
BM_emoji_escaped<wchar_t>         96226 ns      115885 ns
```
2024-04-25 17:16:41 +02:00

3.3 KiB
Raw Blame History

1NumberNameStandardAssigneeStatusFirst released version
2`P0645 <https://wg21.link/P0645>`_Text FormattingC++20Mark de Wever|Complete|14.0
3`P1652 <https://wg21.link/P1652>`_Printf corner cases in std::formatC++20Mark de Wever|Complete|14.0
4`P1892 <https://wg21.link/P1892>`_Extended locale-specific presentation specifiers for std::formatC++20Mark de Wever|Complete|14.0
5`P1868 <https://wg21.link/P1868>`_width: clarifying units of width and precision in std::format (Implements the unicode support.)C++20Mark de Wever|Complete|14.0
6`P2216 <https://wg21.link/P2216>`_std::format improvementsC++20Mark de Wever|Complete|15.0
7`P2418 <https://wg21.link/P2418>`__Add support for ``std::generator``-like types to ``std::format``C++20Mark de Wever|Complete|15.0
8`P2093R14 <https://wg21.link/P2093R14>`__Formatted outputC++23Mark de Wever|Complete|18.0
9`P2286R8 <https://wg21.link/P2286R8>`__Formatting RangesC++23Mark de Wever|Complete|16.0
10`P2508R1 <https://wg21.link/P2508R1>`__Exposing ``std::basic-format-string``C++23Mark de Wever|Complete|15.0
11`P2585R0 <https://wg21.link/P2585R0>`__Improving default container formattingC++23Mark de Wever|Complete|17.0
12`P2539R4 <https://wg21.link/P2539R4>`__Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?C++23Mark de Wever|Complete|18.0
13`P2713R1 <https://wg21.link/P2713R1>`__Escaping improvements in ``std::format``C++23Mark de Wever|Complete|19.0
14`P2675R1 <https://wg21.link/P2675R1>`__``format``'s width estimation is too approximate and not forward compatibleC++23Mark de Wever|Complete|17.0
15`P2572R1 <https://wg21.link/P2572R1>`__``std::format`` fill character allowancesC++23Mark de Wever|Complete|17.0
16`P2510R3 <https://wg21.link/P2510R3>`__Formatting pointersC++26Mark de Wever|Complete|17.0
17`P2757R3 <https://wg21.link/P2757R3>`__Type-checking format argsC++26
18`P2637R3 <https://wg21.link/P2637R3>`__Member ``visit``C++26Hristo Hristov|Complete|19.0
19`P2905R2 <https://wg21.link/P2905R2>`__Runtime format stringsC++26 DRMark de Wever|Complete|18.0
20`P2918R2 <https://wg21.link/P2918R2>`__Runtime format strings IIC++26Mark de Wever|Complete|18.0
21`P2909R4 <https://wg21.link/P2909R4>`__Fix formatting of code units as integers (Dude, wheres my ``char``?)C++26 DRMark de Wever|Complete|18.0
22`P3107R5 <https://wg21.link/P3107R5>`__Permit an efficient implementation of ``std::print``C++26 DRMark de Wever|In Progress|
23`P3142R0 <https://wg21.link/P3142R0>`__Printing Blank Lines with ``println``C++26 DRHristo Hristov|Complete|19.0
24`P2845R8 <https://wg21.link/P2845R8>`__Formatting of ``std::filesystem::path``C++26Mark de Wever
25`P1361 <https://wg21.link/P1361>`_Integration of chrono with text formattingC++20Mark de Wever|In Progress|
26`P2372 <https://wg21.link/P2372>`__Fixing locale handling in chrono formattersC++20Mark de Wever|In Progress|