mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 08:36:07 +00:00

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 ```
libc++ Documentation ==================== The libc++ documentation is written using the Sphinx documentation generator. It is currently tested with Sphinx 1.1.3. To build the documents into html configure libc++ with the following cmake options: * -DLLVM_ENABLE_SPHINX=ON * -DLIBCXX_INCLUDE_DOCS=ON After configuring libc++ with these options the make rule `docs-libcxx-html` should be available. The documentation in this directory is published at https://libcxx.llvm.org. It is kept up-to-date by a build bot: https://lab.llvm.org/buildbot/#/builders/publish-sphinx-docs. If you notice that the documentation is not updating anymore, please contact one of the maintainers.