<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in format</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>b9a2658a3e8bd13b0f9e7a8a440832a95b377216 - [libc++][C++03] Use `__cxx03/` headers in C++03 mode (#109002)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#b9a2658a3e8bd13b0f9e7a8a440832a95b377216</link>
        <description>[libc++][C++03] Use `__cxx03/` headers in C++03 mode (#109002)This patch implements the forwarding to frozen C++03 headers asdiscussed inhttps://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc. In theRFC, we initially proposed selecting the right headers from the Clangdriver, however consensus seemed to steer towards handling this in thelibrary itself. This patch implements that direction.At a high level, the changes basically amount to making each publicheader look like this:```// inside &lt;vector&gt;#ifdef _LIBCPP_CXX03_LANG#  include &lt;__cxx03/vector&gt;#else  // normal &lt;vector&gt; content#endif```In most cases, public headers are simple umbrella headers so there isn&apos;tmuch code in the #else branch. In other cases, the #else branch containsthe actual implementation of the header.

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Sat, 21 Dec 2024 12:01:48 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>c166a9c713ec86b86f1f178a5133bc128fd0a610 - [libc++] Add #if 0 block to all the top-level headers (#119234)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#c166a9c713ec86b86f1f178a5133bc128fd0a610</link>
        <description>[libc++] Add #if 0 block to all the top-level headers (#119234)Including The frozen C++03 headers results in a lot of formattingchanges in the main headers, so this splits these changes into aseparate commit instead.This is part ofhttps://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc.

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Tue, 10 Dec 2024 15:02:12 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>c6f3b7bcd0596d30f8dabecdfb9e44f9a07b6e4c - [libc++] Refactor the configuration macros to being always defined (#112094)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#c6f3b7bcd0596d30f8dabecdfb9e44f9a07b6e4c</link>
        <description>[libc++] Refactor the configuration macros to being always defined (#112094)This is a follow-up to #89178. This updates the `&lt;__config_site&gt;`macros.

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Wed, 06 Nov 2024 09:39:19 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>f08df56d3af3e67ab39ebbfb62be3ed3f86d0c9d - [libc++][format] Implements P3107R5 in &lt;format&gt;. (#86713)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#f08df56d3af3e67ab39ebbfb62be3ed3f86d0c9d</link>
        <description>[libc++][format] Implements P3107R5 in &lt;format&gt;. (#86713)This adds the new std::enable_nonlocking_formatter_optimization trait in&lt;format&gt;. This trait will be used in std::print to implement theperformance benefits.Implements parts of- P3107R5 - Permit an efficient implementation of ``std::print``

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Tue, 30 Jul 2024 17:04:26 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>ec56790c3b27df4fa1513594ca9a74fd8ad5bf7f - [libcxx] don&apos;t `#include &lt;cwchar&gt;` if wide chars aren&apos;t enabled (#99911)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#ec56790c3b27df4fa1513594ca9a74fd8ad5bf7f</link>
        <description>[libcxx] don&apos;t `#include &lt;cwchar&gt;` if wide chars aren&apos;t enabled (#99911)Pull request #96032 unconditionall adds the `cwchar` include in the`format` umbrella header. However support for wchar_t can be disabled inthe build system (LIBCXX_ENABLE_WIDE_CHARACTERS).This patch guards against inclusion of `cwchar` in `format` by checkingthe `_LIBCPP_HAS_NO_WIDE_CHARACTERS` define.For clarity I&apos;ve also merged the include header section that `cwchar`was in with the one above as they were both guarded by the same `#if`logic.

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Tue, 23 Jul 2024 13:09:34 +0000</pubDate>
        <dc:creator>Ties Stuij &lt;ties.stuij@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>dfddc0c4843baaf9605aeb1c4f82eac185e90265 - [libc++] Include the rest of the detail headers by version in the umbrella headers (#96032)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#dfddc0c4843baaf9605aeb1c4f82eac185e90265</link>
        <description>[libc++] Include the rest of the detail headers by version in the umbrella headers (#96032)This is a follow-up to #83740.

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Thu, 18 Jul 2024 08:59:58 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>e3dea5e3410fd6a1e549cfa7021c4f8652b36095 - [libc++][format] Improves escaping performance. (#88533)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#e3dea5e3410fd6a1e549cfa7021c4f8652b36095</link>
        <description>[libc++][format] Improves escaping performance. (#88533)The previous patch implemented- P2713R1 Escaping improvements in std::format- LWG3965 Incorrect example in [format.string.escaped] p3 for formattingof combining charactersThese changes were correct, but had a size and performance penalty. Thispatch improves the size and performance of the previous patch. Theperformance is still worse than before since the lookups may require twoproperty lookups instead of one before implementing the paper. Thechanges give a tighter coupling between the Unicode data and thealgorithm. Additional tests are added to notify about changes in futureUnicode updates.Before```-----------------------------------------------------------------------Benchmark                             Time             CPU   Iterations-----------------------------------------------------------------------BM_ascii_escaped&lt;char&gt;           110704 ns       110696 ns         6206BM_unicode_escaped&lt;char&gt;         101371 ns       101374 ns         6862BM_cyrillic_escaped&lt;char&gt;         63329 ns        63327 ns        11013BM_japanese_escaped&lt;char&gt;         41223 ns        41225 ns        16938BM_emoji_escaped&lt;char&gt;           111022 ns       111021 ns         6304BM_ascii_escaped&lt;wchar_t&gt;        112441 ns       112443 ns         6231BM_unicode_escaped&lt;wchar_t&gt;      102776 ns       102779 ns         6813BM_cyrillic_escaped&lt;wchar_t&gt;      58977 ns        58975 ns        11868BM_japanese_escaped&lt;wchar_t&gt;      36885 ns        36886 ns        18975BM_emoji_escaped&lt;wchar_t&gt;        115885 ns       115881 ns         6051```The first change is to manually encode the entire last area and make amanual exception for the 240 excluded entries. This reduced the tablefrom 1077 to 729 entries and gave the following benchmark results.```-----------------------------------------------------------------------Benchmark                             Time             CPU   Iterations-----------------------------------------------------------------------BM_ascii_escaped&lt;char&gt;           104777 ns       104776 ns         6550BM_unicode_escaped&lt;char&gt;          96980 ns        96982 ns         7238BM_cyrillic_escaped&lt;char&gt;         60254 ns        60251 ns        11670BM_japanese_escaped&lt;char&gt;         44452 ns        44452 ns        15734BM_emoji_escaped&lt;char&gt;           104557 ns       104551 ns         6685BM_ascii_escaped&lt;wchar_t&gt;        107456 ns       107454 ns         6505BM_unicode_escaped&lt;wchar_t&gt;       96219 ns        96216 ns         7301BM_cyrillic_escaped&lt;wchar_t&gt;      56921 ns        56904 ns        12288BM_japanese_escaped&lt;wchar_t&gt;      39530 ns        39529 ns        17492BM_emoji_escaped&lt;wchar_t&gt;        108494 ns       108496 ns         6408```An entry in the table can only contain 2048 code points. For largerranges there are multiple entries split in chunks with a maximum size of2048 entries. To encode the entire Unicode code point range 21 bits arerequired. The manual part starts at 0x323B0 this means all entries inthe table fit in 18 bits. This allows to allocate 3 additional bits forthe range. This allows entries to have 16384 elements. This range alwaysavoids splitting the range in multiple chunks.This reduces the number of table elements from 729 to 711 and gives thefollowing benchmark results.```-----------------------------------------------------------------------Benchmark                             Time             CPU   Iterations-----------------------------------------------------------------------BM_ascii_escaped&lt;char&gt;           104289 ns       104289 ns         6619BM_unicode_escaped&lt;char&gt;          96682 ns        96681 ns         7215BM_cyrillic_escaped&lt;char&gt;         59673 ns        59673 ns        11732BM_japanese_escaped&lt;char&gt;         41983 ns        41982 ns        16646BM_emoji_escaped&lt;char&gt;           104119 ns       104120 ns         6683BM_ascii_escaped&lt;wchar_t&gt;        104503 ns       104505 ns         6693BM_unicode_escaped&lt;wchar_t&gt;       93426 ns        93423 ns         7489BM_cyrillic_escaped&lt;wchar_t&gt;      54858 ns        54859 ns        12742BM_japanese_escaped&lt;wchar_t&gt;      36385 ns        36384 ns        19259BM_emoji_escaped&lt;wchar_t&gt;        105608 ns       105610 ns         6592```

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Sun, 28 Apr 2024 10:15:25 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>316634ff5925481201a7b27d5f806cc2361cf4f2 - [libc++] Remove &lt;queue&gt; and &lt;stack&gt; includes from &lt;format&gt; (#85520)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#316634ff5925481201a7b27d5f806cc2361cf4f2</link>
        <description>[libc++] Remove &lt;queue&gt; and &lt;stack&gt; includes from &lt;format&gt; (#85520)This reduces the include time of &lt;format&gt; from 691ms to 556ms.

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Fri, 29 Mar 2024 11:06:09 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>5bcb78141c628d9bd7a0b6e398858282c16038d3 - [libc++] Remove &lt;locale&gt; includes from &lt;format&gt; (#85478)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#5bcb78141c628d9bd7a0b6e398858282c16038d3</link>
        <description>[libc++] Remove &lt;locale&gt; includes from &lt;format&gt; (#85478)This reduces the include time from 767ms to 691ms.

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Sat, 16 Mar 2024 12:45:24 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>087666811452e1b6490d59572337aaa907f93e7c - [libc++][NFC] Move __format/format_fwd.h to __fwd/format.h (#84336)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#087666811452e1b6490d59572337aaa907f93e7c</link>
        <description>[libc++][NFC] Move __format/format_fwd.h to __fwd/format.h (#84336)

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Fri, 08 Mar 2024 19:43:10 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>37dca605c9bd41732da010ee97ed15ad9585a37d - [libc++] Clean up includes of &lt;__assert&gt; (#80091)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#37dca605c9bd41732da010ee97ed15ad9585a37d</link>
        <description>[libc++] Clean up includes of &lt;__assert&gt; (#80091)Originally, we used __libcpp_verbose_abort to handle assertion failures.That function was declared from all public headers. Since we don&apos;t usethat mechanism anymore, we don&apos;t need to declare __libcpp_verbose_abortfrom all public headers, and we can clean up a lot of unnecessaryincludes.This patch also moves the definition of the various assertion categoriesto the &lt;__assert&gt; header, since we now rely on regular IWYU for theseassertion macros.rdar://105510916

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Thu, 29 Feb 2024 15:12:22 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>27e67cdb31bed4c346af925686c031d57aef9846 - Reland: [libc++][format] P2637R3: Member visit (std::basic_format_arg) #76449 (#79032)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#27e67cdb31bed4c346af925686c031d57aef9846</link>
        <description>Reland: [libc++][format] P2637R3: Member visit (std::basic_format_arg) #76449 (#79032)Deleted the offending test case.`libcxx/test/std/utilities/format/format.arguments/format.arg/visit.return_type.pass.cpp`lines: 134-135:   &gt;   test&lt;Context, bool, long&gt;(true, 192812079084L);     test&lt;Context, bool, long&gt;(false, 192812079084L);      Relands: https://github.com/llvm/llvm-project/pull/76449Reverted in:https://github.com/llvm/llvm-project/commit/02f95b77515fe18ed1076b94cbb850ea0cf3c77e---------Co-authored-by: Zingam &lt;zingam@outlook.com&gt;

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Mon, 29 Jan 2024 18:57:12 +0000</pubDate>
        <dc:creator>Hristo Hristov &lt;hristo.goshev.hristov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>02f95b77515fe18ed1076b94cbb850ea0cf3c77e - Revert &quot;[libc++][format] P2637R3: Member `visit` (`std::basic_format_arg`) (#76449)&quot;</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#02f95b77515fe18ed1076b94cbb850ea0cf3c77e</link>
        <description>Revert &quot;[libc++][format] P2637R3: Member `visit` (`std::basic_format_arg`) (#76449)&quot;This reverts commit 7d9b5aa65b09126031e1c2903605a7d34aea4bc1 sincestd/utilities/format/format.arguments/format.arg/visit.return_type.pass.cppis failing on Windows when building with Clang-cl.

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Mon, 22 Jan 2024 16:55:12 +0000</pubDate>
        <dc:creator>Petr Hosek &lt;phosek@google.com&gt;</dc:creator>
    </item>
<item>
        <title>7d9b5aa65b09126031e1c2903605a7d34aea4bc1 - [libc++][format] P2637R3: Member `visit` (`std::basic_format_arg`) (#76449)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#7d9b5aa65b09126031e1c2903605a7d34aea4bc1</link>
        <description>[libc++][format] P2637R3: Member `visit` (`std::basic_format_arg`) (#76449)Implements parts of: `P2637R3` https://wg21.link/P2637R3(https://eel.is/c++draft/variant.visit)Implements:`basic_format_arg.visit()``basic_format_arg.visit&lt;R&gt;()`Deprecates:`std::visit_format_arg()`The tests are as close as possible to the non-member function tests.To land after: https://github.com/llvm/llvm-project/pull/76447,https://github.com/llvm/llvm-project/pull/76268---------Co-authored-by: Zingam &lt;zingam@outlook.com&gt;

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Sun, 21 Jan 2024 10:30:25 +0000</pubDate>
        <dc:creator>Hristo Hristov &lt;hristo.goshev.hristov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>e3f154d8733928fa725584736a18b75832db30db - [libc++] Implements Runtime format strings. (#73353)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#e3f154d8733928fa725584736a18b75832db30db</link>
        <description>[libc++] Implements Runtime format strings. (#73353)This change requires quite a number of changes in the tests; this is notcode I expect people to use in the wild. So I don&apos;t expect breakage forusers.Implements:- P2905R2 Runtime format strings, as a Defect Report

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Sat, 09 Dec 2023 11:32:17 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>92d9f232dd627eea8bd2c825c539b28374bbfa69 - [libc++] Implements Runtime format strings II. (#72543)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#92d9f232dd627eea8bd2c825c539b28374bbfa69</link>
        <description>[libc++] Implements Runtime format strings II. (#72543)Implements- P2918R2 Runtime format strings II

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Fri, 24 Nov 2023 16:30:33 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>dff62f5251f26db856124526ae1b335ddc1e892c - [libc++][format] Removes the experimental status.</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#dff62f5251f26db856124526ae1b335ddc1e892c</link>
        <description>[libc++][format] Removes the experimental status.The code has been quite ready for a while now and there are no more ABIbreaking papers. So this is a good time to mark the feature as stable.Reviewed By: #libc, ldionneDifferential Revision: https://reviews.llvm.org/D150802

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Wed, 17 May 2023 17:17:52 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>04d4f4b3d4e4fd608a3bc3fe387006435f04b61d - [libc++][format] Adds container adaptor formatters.</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#04d4f4b3d4e4fd608a3bc3fe387006435f04b61d</link>
        <description>[libc++][format] Adds container adaptor formatters.Implements parts of- P2286R8 Formatting RangesDepends on D140653Reviewed By: ldionne, #libcDifferential Revision: https://reviews.llvm.org/D141290

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Thu, 05 May 2022 16:57:32 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>22e8525dfdd7d78d05ad3873cf94476021e4a08f - [libc++][format] Implements range_formatter</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#22e8525dfdd7d78d05ad3873cf94476021e4a08f</link>
        <description>[libc++][format] Implements range_formatterImplements parts of- P2286R8 Formatting Ranges- P2585R0 Improving default container formattingDepends on D140651Reviewed By: ldionne, #libcDifferential Revision: https://reviews.llvm.org/D140653

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Thu, 05 May 2022 16:57:32 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>eb6e13cb32805ee12d19aaa5823f3e4216a35653 - [libc++][format] Adds formatter for tuple and pair</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/format#eb6e13cb32805ee12d19aaa5823f3e4216a35653</link>
        <description>[libc++][format] Adds formatter for tuple and pairImplements parts of- P2286R8 Formatting RangesReviewed By: ldionne, #libcDifferential Revision: https://reviews.llvm.org/D136775

            List of files:
            /llvm-project/libcxx/include/format</description>
        <pubDate>Thu, 05 May 2022 16:57:32 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
</channel>
</rss>
