<?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 formatter_string.h</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>857a78c0 - [libc++] Implements Unicode grapheme clustering</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#857a78c0</link>
        <description>[libc++] Implements Unicode grapheme clusteringThis implements the Grapheme clustering as required byP1868R2 width: clarifying units of width and precision in std::formatThis was omitted in the initial patch, but the paper was marked as completed. This really completes the paper.Reviewed By: ldionne, #libcDifferential Revision: https://reviews.llvm.org/D126971

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Sat, 28 May 2022 13:30:10 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>77ad77c0 - [libc++][format] Improve string formatters</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#77ad77c0</link>
        <description>[libc++][format] Improve string formattersThis changes the implementation of the formatter. Instead of inheritingfrom a specialized parser all formatters will use the same genericparser. This reduces the binary size.The new parser contains some additional fields only used in the chronoformatting. Since this doesn&apos;t change the size of the parser the fieldsare in the generic parser. The parser is designed to fit in 128-bit,making it cheap to pass by value.The new format function is a const member function. This isn&apos;t requiredby the Standard yet, but it will be after LWG-3636 is accepted.Additionally P2286 adds a formattable concept which requires the memberfunction to be const qualified in C++23. This paper is likely to beaccepted in the 2022 July plenary.Depends on D121530NOTE parts of the code now contains duplicates for the current and new parser.The intention is to remove the duplication in followup patches. A generaloverview of the final code is available in D124620. That review however lacks abit of polish.Most of the new code is based on the same algorithms used in the current code.The final version of this code reduces the binary size by 17 KB for this examplecode```int main() {  {    std::string_view sv{&quot;hello world&quot;};    std::format(&quot;{}{}|{}{}{}{}{}{}|{}{}{}{}{}{}|{}{}{}|{}{}|{}&quot;, true, &apos;*&apos;,                (signed char)(42), (short)(42), (int)(42), (long)(42), (long long)(42), (__int128_t)(42),                (unsigned char)(42), (unsigned short)(42), (unsigned int)(42), (unsigned long)(42),                (unsigned long long)(42), (__uint128_t)(42),                (float)(42), (double)(42), (long double)(42),                &quot;hello world&quot;, sv,                nullptr);  }  {    std::wstring_view sv{L&quot;hello world&quot;};    std::format(L&quot;{}{}|{}{}{}{}{}{}|{}{}{}{}{}{}|{}{}{}|{}{}|{}&quot;, true, L&apos;*&apos;,                (signed char)(42), (short)(42), (int)(42), (long)(42), (long long)(42), (__int128_t)(42),                (unsigned char)(42), (unsigned short)(42), (unsigned int)(42), (unsigned long)(42),                (unsigned long long)(42), (__uint128_t)(42),                (float)(42), (double)(42), (long double)(42),                L&quot;hello world&quot;, sv,                nullptr);  }}```Reviewed By: #libc, ldionneDifferential Revision: https://reviews.llvm.org/D125606

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Tue, 28 Dec 2021 17:48:04 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>f0e61029 - [libc++][format] Adds formatter&lt;charT[N], charT&gt;.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#f0e61029</link>
        <description>[libc++][format] Adds formatter&lt;charT[N], charT&gt;.This formatter isn&apos;t in the list of required formatters in[format.formatter.spec]/2.2  For each charT, the string type specializations   template&lt;&gt; struct formatter&lt;charT*, charT&gt;;  template&lt;&gt; struct formatter&lt;const charT*, charT&gt;;  template&lt;size_t N&gt; struct formatter&lt;const charT[N], charT&gt;;  template&lt;class traits, class Allocator&gt;    struct formatter&lt;basic_string&lt;charT, traits, Allocator&gt;, charT&gt;;  template&lt;class traits&gt;    struct formatter&lt;basic_string_view&lt;charT, traits&gt;, charT&gt;;Since remove_cvref_t&lt;const charT[N]&gt; is charT[N] the formatter isrequired by[format.functions]/25  Preconditions: formatter&lt;remove_cvref_t&lt;Ti&gt;, charT&gt; meets the  BasicFormatter requirements ([formatter.requirements]) for each Ti in  Args.Depends on D120921Reviewed By: #libc, MordanteDifferential Revision: https://reviews.llvm.org/D121138

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Sat, 29 Jan 2022 19:15:11 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>d2baefae - [libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER &gt; 17. NFCI.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#d2baefae</link>
        <description>[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER &gt; 17. NFCI.All supported compilers that support C++20 now support concepts. So, remove`_LIB_LIBCPP_HAS_NO_CONCEPTS` in favor of `_LIBCPP_STD_VER &gt; 17`. Similarly inthe tests, remove `// UNSUPPORTED: libcpp-no-concepts`.Differential Revision: https://reviews.llvm.org/D121528

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Sat, 12 Mar 2022 15:46:57 +0000</pubDate>
        <dc:creator>Joe Loser &lt;joeloser93@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>368faaca - [libc++] Revert &quot;Protect users from relying on detail headers&quot; &amp; related changes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#368faaca</link>
        <description>[libc++] Revert &quot;Protect users from relying on detail headers&quot; &amp; related changesThis commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9,which were related to the original commit). As landed, 5aaefa51 hadunintended consequences on some downstream bots and didn&apos;t have propercoverage upstream due to a few subtle things. Implementing this issomething we should do in libc++, however we&apos;ll first need to addressa few issues listed in https://reviews.llvm.org/D106124#3349710.Differential Revision: https://reviews.llvm.org/D120683

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Mon, 28 Feb 2022 21:37:25 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>5aaefa51 - [libcxx][modules] protects users from relying on detail headers</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#5aaefa51</link>
        <description>[libcxx][modules] protects users from relying on detail headerslibc++ has started splicing standard library headers into much morefine-grained content for maintainability. It&apos;s very likely that outdatedand naive tooling (some of which is outside of LLVM&apos;s scope) willsuggest users include things such as &lt;__ranges/access.h&gt; instead of&lt;ranges&gt;, and Hyrum&apos;s law suggests that users will eventually begin torely on this without the help of tooling. As such, this commitintends to protect users from themselves, by making it a hard error foranyone outside of the standard library to include libc++ detail headers.Differential Revision: https://reviews.llvm.org/D106124

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Fri, 25 Feb 2022 18:59:32 +0000</pubDate>
        <dc:creator>Christopher Di Bella &lt;cjdb@google.com&gt;</dc:creator>
    </item>
<item>
        <title>f87aa19b - [libc++] Move everything related solely to _LIBCPP_ASSERT to its own file</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#f87aa19b</link>
        <description>[libc++] Move everything related solely to _LIBCPP_ASSERT to its own fileThis is the first step towards disentangling the debug mode and assertionsin libc++. This patch doesn&apos;t make any functional change: it simply moves_LIBCPP_ASSERT-related stuff to its own file so as to make it clear thatlibc++ assertions and the debug mode are different things. Future patcheswill make it possible to enable assertions without enabling the debugmode.Differential Revision: https://reviews.llvm.org/D119769

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Mon, 14 Feb 2022 18:41:09 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>11e4001b - [libc++][format][nfc] Header cleanup.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#11e4001b</link>
        <description>[libc++][format][nfc] Header cleanup.Remove the unneeded macro protection, forward declarations, andincludes.Reviewed By: #libc, Quuxplusone, ldionne, philnikDifferential Revision: https://reviews.llvm.org/D118925

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Thu, 03 Feb 2022 18:02:36 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>fa6b9e40 - [libc++] Normalize all our &apos;#pragma GCC system_header&apos;, and regression-test.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#fa6b9e40</link>
        <description>[libc++] Normalize all our &apos;#pragma GCC system_header&apos;, and regression-test.Now we&apos;ll notice if a header forgets to include this magic phrase.Differential Revision: https://reviews.llvm.org/D118800

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Wed, 02 Feb 2022 01:16:40 +0000</pubDate>
        <dc:creator>Arthur O&apos;Dwyer &lt;arthur.j.odwyer@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2b8b48c5 - [libc++][format] Disable default formatter.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#2b8b48c5</link>
        <description>[libc++][format] Disable default formatter.[format.formatter.spec]/5 lists the requirements for the defaultformatter. The original implementation didn&apos;t implement this. Thisimplements the default formatter according to the Standard.This adds additional test to validate the default formatter is disabledand the required standard formatters are enabled.While adding the tests it seems the formatters needed a constraint for thecharacter types they were valid for.Implements parts of:- P0645 Text FormattingDepends on D115988Reviewed By: ldionne, #libcDifferential Revision: https://reviews.llvm.org/D115989

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Tue, 14 Dec 2021 18:46:10 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>e8b24ee1 - [libc++][format][NFC] Remove some unneeded headers.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#e8b24ee1</link>
        <description>[libc++][format][NFC] Remove some unneeded headers.Reviewed By: #libc, Quuxplusone, MordanteDifferential Revision: https://reviews.llvm.org/D116175

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Wed, 22 Dec 2021 17:46:23 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>75ecd1f3 - [libcxx][format] Fix how we handle char traits in formatter&lt;string&gt; and formatter&lt;string_view&gt;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#75ecd1f3</link>
        <description>[libcxx][format] Fix how we handle char traits in formatter&lt;string&gt; and formatter&lt;string_view&gt;Right now we drop the char_traits template argument, which presumes thatstring&lt;_CharT, _Traits&gt; and string&lt;_CharT&gt; are interchangeable.Reviewed By: Mordante, #libc, QuuxplusoneDifferential Revision: https://reviews.llvm.org/D112017

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Thu, 07 Oct 2021 21:32:09 +0000</pubDate>
        <dc:creator>Daniel McIntosh &lt;Daniel.McIntosh@ibm.com&gt;</dc:creator>
    </item>
<item>
        <title>d550930a - [libc++][format] Adds string formatter.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/__format/formatter_string.h#d550930a</link>
        <description>[libc++][format] Adds string formatter.Implements the formatter for all string types.[format.formatter.spec]/2.2For each charT, the string type specializations```  template&lt;&gt; struct formatter&lt;charT*, charT&gt;;  template&lt;&gt; struct formatter&lt;const charT*, charT&gt;;  template&lt;size_t N&gt; struct formatter&lt;const charT[N], charT&gt;;  template&lt;class traits, class Allocator&gt;    struct formatter&lt;basic_string&lt;charT, traits, Allocator&gt;, charT&gt;;  template&lt;class traits&gt;    struct formatter&lt;basic_string_view&lt;charT, traits&gt;, charT&gt;;```This removes the stub implemented in D96664.Implements parts of:- P0645 Text Formatting- P1868 width: clarifying units of width and precision in std::formatReviewed By: #libc, ldionne, vitautDifferential Revision: https://reviews.llvm.org/D103425

            List of files:
            /llvm-project-15.0.7/libcxx/include/__format/formatter_string.h</description>
        <pubDate>Mon, 14 Dec 2020 16:39:15 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
</channel>
</rss>
