<?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 locale</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>3ee9a50a - [libc++] Implement P0618R0 (Deprecating &lt;codecvt&gt;)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#3ee9a50a</link>
        <description>[libc++] Implement P0618R0 (Deprecating &lt;codecvt&gt;)Reviewed By: ldionne, #libcSpies: cfe-commits, llvm-commits, libcxx-commitsDifferential Revision: https://reviews.llvm.org/D127313

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Thu, 30 Jun 2022 11:47:26 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>de4a57cb - [libc++] Re-add transitive includes that had been removed since LLVM 14</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#de4a57cb</link>
        <description>[libc++] Re-add transitive includes that had been removed since LLVM 14This commit re-adds transitive includes that had been removed by4cd04d1687f1, c36870c8e79c, a83f4b9cda57, 1458458b558d, 2e2f3158c604,and 489637e66dd3. This should cover almost all the includes that hadbeen removed since LLVM 14 and that would contribute to breaking usercode when releasing LLVM 15.It is possible to disable the inclusion of these headers by defining_LIBCPP_REMOVE_TRANSITIVE_INCLUDES. The intent is that vendors willenable that macro and start fixing downstream issues immediately. Wecan then remove the macro (and the transitive includes) by default ina future release. That way, we will break users only once by removingtransitive includes in bulk instead of doing it bit by bit a everyrelease, which is more disruptive for users.Note 1: The set of headers to re-add was found by re-generating the        transitive include test on a checkout of release/14.x, which        provided the list of all transitive includes we used to provide.Note 2: Several includes of &lt;vector&gt;, &lt;optional&gt;, &lt;array&gt; and &lt;unordered_map&gt;        have been added in this commit. These transitive inclusions were        added when we implemented boyer_moore_searcher in &lt;functional&gt;.Note 3: This is a best effort patch to try and resolve downstream breakage        caused since branching LLVM 14. I wasn&apos;t able to perfectly mirror        transitive includes in LLVM 14 for a few headers, so I added a        release note explaining it. To summarize, adding boyer_moore_searcher        created a bunch of circular dependencies, so we have to break        backwards compatibility in a few cases.Differential Revision: https://reviews.llvm.org/D128661

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Mon, 27 Jun 2022 19:53:41 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>23d6cde1 - [libc++] Add a test to pin down the set of transitive public includes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#23d6cde1</link>
        <description>[libc++] Add a test to pin down the set of transitive public includesA situation that happens fairly often in libc++ is that we remove sometransitive includes in a header (either purposefully or not) and thatends up breaking users. Of course, we want to be able to remove ourtransitive includes, however it&apos;s also good to have a grip on thatto know which commit changed what and when. Furthermore, it&apos;s goodto accumulate include removals for a couple of releases to avoidbreaking users at every release for this reason.This commit adds a test that should break whenever we remove aninclude. Hence, it should allow us to track which headers includewhich other headers transitively, giving us a traceable way toremove headers.Differential Revision: https://reviews.llvm.org/D128236

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Mon, 20 Jun 2022 21:10:53 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4cd04d16 - [libc++] Removes unneeded &lt;iterator&gt; includes.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#4cd04d16</link>
        <description>[libc++] Removes unneeded &lt;iterator&gt; includes.Reviewed By: #libc, philnikDifferential Revision: https://reviews.llvm.org/D127675

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Mon, 13 Jun 2022 18:05:36 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>3cd4531b - [libc++] Granularize &lt;iterator&gt; includes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#3cd4531b</link>
        <description>[libc++] Granularize &lt;iterator&gt; includesReviewed By: ldionne, #libcSpies: libcxx-commits, wenleiDifferential Revision: https://reviews.llvm.org/D127445

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Fri, 10 Jun 2022 17:53:10 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>976f3705 - [libc++] Granularize __string</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#976f3705</link>
        <description>[libc++] Granularize __stringReviewed By: ldionne, #libcSpies: libcxx-commits, mgornyDifferential Revision: https://reviews.llvm.org/D127156

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Mon, 06 Jun 2022 21:35:24 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>2ae52326 - [libc++] Towards a simpler extern template story in libc++</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#2ae52326</link>
        <description>[libc++] Towards a simpler extern template story in libc++The flexibility around extern template instantiation declarations inlibc++ result in a very complicated model, especially when support forslightly different configurations (like the debug mode or assertionsin the dylib) are taken into account. That results in unexpected bugslike http://llvm.org/PR50534 (and there have been multiple similarbugs in the past, notably around the debug mode).This patch gets rid of the _LIBCPP_DISABLE_EXTERN_TEMPLATE knob, whichI don&apos;t think is fundamental. Indeed, the motivation for that knob was toavoid taking a dependency on the library, however that can be done betterby linking against the static library instead. And in fact, some parts ofthe headers will always depend on things defined in the library, whichdefeats the original goal of _LIBCPP_DISABLE_EXTERN_TEMPLATE.Differential Revision: https://reviews.llvm.org/D103960

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Tue, 08 Jun 2021 21:25:08 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>f3966eaf - [libc++] Make the Debug mode a configuration-time only option</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#f3966eaf</link>
        <description>[libc++] Make the Debug mode a configuration-time only optionThe debug mode has been broken pretty much ever since it was shippedbecause it was possible to enable the debug mode in user code withoutactually enabling it in the dylib, leading to ODR violations thatcaused various kinds of failures.This commit makes the debug mode a knob that is configured whenbuilding the library and which can&apos;t be changed afterwards. This isless flexible for users, however it will actually work as intendedand it will allow us, in the future, to add various kinds of checksthat do not assume the same ABI as the normal library. Furthermore,this will make the debug mode more robust, which means that vendorsmight be more tempted to support it properly, which hasn&apos;t been thecase with the current debug mode.This patch shouldn&apos;t break any user code, except folks who are buildingagainst a library that doesn&apos;t have the debug mode enabled and who tryto enable the debug mode in their code. Such users will get a compile-timeerror explaining that this configuration isn&apos;t supported anymore.In the future, we should further increase the granularity of the debugmode checks so that we can cherry-pick which checks to enable, like wedo for unspecified behavior randomization.Differential Revision: https://reviews.llvm.org/D122941

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Fri, 01 Apr 2022 20:38:30 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>b86771a2 - [libc++] Minor emscripten changes from downstream</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#b86771a2</link>
        <description>[libc++] Minor emscripten changes from downstreamDifferential Revision: https://reviews.llvm.org/D126583

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Sat, 22 May 2021 13:39:33 +0000</pubDate>
        <dc:creator>Sam Clegg &lt;sbc@chromium.org&gt;</dc:creator>
    </item>
<item>
        <title>ab07d06e - [libcxx] Reject month 0 in get_date/__get_month</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#ab07d06e</link>
        <description>[libcxx] Reject month 0 in get_date/__get_month[libcxx] Reject month 0 in get_date/__get_monthThis fixes #47663.Months in dates should be &gt;= 1 and &lt;= 12.We parse up to two digits then minus one, becausewe want to store this as &quot;months since January&quot;(0-11).However we didn&apos;t check that the result of thatwas not -1. For example if you had (MM/DD/YYYY)00/21/2022.Added tests for:* Failing if month is 0* Failing if month is 13* Allowing a leading zero in month e.g. &quot;01&quot;Note that libc++ and libstdc++ return differentvalues on parsing failure, and MSVC STL returnsend of stream instead.Handle the first two by checking for defines, MSVC STLexpects these tests to fail for other reasons already:https://github.com/microsoft/STL/blob/main/tests/libcxx/expected_results.txt#L372so not handling that case here.Reviewed By: #libc, MordanteDifferential Revision: https://reviews.llvm.org/D124175

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Thu, 21 Apr 2022 14:09:56 +0000</pubDate>
        <dc:creator>David Spickett &lt;david.spickett@linaro.org&gt;</dc:creator>
    </item>
<item>
        <title>385cc25a - [libc++] Ensure that all public C++ headers include &lt;__assert&gt;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#385cc25a</link>
        <description>[libc++] Ensure that all public C++ headers include &lt;__assert&gt;This patch changes the requirement for getting the declaration of theassertion handler from including &lt;__assert&gt; to including any publicC++ header of the library. Note that C compatibility headers areexcluded because we don&apos;t implement all the C headers ourselves --some of them are taken straight from the C library, like assert.h.It also adds a generated test to check it. Furthermore, this newgenerated test is designed in a way that will make it possible toreplace almost all the existing test-generation scripts with thissystem in upcoming patches.Differential Revision: https://reviews.llvm.org/D122506

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Fri, 25 Mar 2022 16:55:36 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>01df6751 - [libc++] Enable modernize-loop-convert</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#01df6751</link>
        <description>[libc++] Enable modernize-loop-convertReviewed By: ldionne, Mordante, #libcSpies: var-const, aheejin, libcxx-commitsDifferential Revision: https://reviews.llvm.org/D121216

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Tue, 08 Mar 2022 15:27:22 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&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/locale#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/locale</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>2e2f3158 - [libc++] Granularize algorithm includes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#2e2f3158</link>
        <description>[libc++] Granularize algorithm includesReviewed By: Mordante, ldionne, Quuxplusone, #libc, #libc_abiSpies: #libc_vendors, libcxx-commits, miyukiDifferential Revision: https://reviews.llvm.org/D119667

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Tue, 15 Feb 2022 17:18:08 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>a7c2a628 - [libc++] Guard warning pragmas</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#a7c2a628</link>
        <description>[libc++] Guard warning pragmasThis makes the GCC output even cleaner!Reviewed By: ldionne, #libcSpies: mstorsjo, Quuxplusone, Mordante, libcxx-commitsDifferential Revision: https://reviews.llvm.org/D119295

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Mon, 14 Feb 2022 17:52:28 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&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/locale#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/locale</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>1dbe32dd - [libc++] Use reserved identifier for template parameter</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#1dbe32dd</link>
        <description>[libc++] Use reserved identifier for template parameter`T` is not a valid identifier for libc++ to use, use `_Tp` instead. Caught from D116957Reviewed By: QuuxplusoneDifferential Revision: https://reviews.llvm.org/D117582

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Tue, 18 Jan 2022 19:15:18 +0000</pubDate>
        <dc:creator>Alex Brachet &lt;abrachet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>eb8650a7 - [runtimes][NFC] Remove filenames at the top of the license notice</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#eb8650a7</link>
        <description>[runtimes][NFC] Remove filenames at the top of the license noticeWe&apos;ve stopped doing it in libc++ for a while now because these nameswould end up rotting as we move things around and copy/paste stuff.This cleans up all the existing files so as to stop the spreadingas people copy-paste headers around.

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Wed, 17 Nov 2021 21:25:01 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>faa019c0 - [libc++] Fix segmentation fault in __do_put_integral</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#faa019c0</link>
        <description>[libc++] Fix segmentation fault in __do_put_integral6 chars are not sufficient to represent all formats for 64 bit integers.This was accidentally introduced in commit b889cbf36635a302f5b77560f1769178f196c2c7 (https://reviews.llvm.org/D112830).This causes failures in downstream projects, for example:* https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40817* https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40841Differential Revision: https://reviews.llvm.org/D113600

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Wed, 10 Nov 2021 19:34:31 +0000</pubDate>
        <dc:creator>MarcoFalke &lt;falke.marco@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>a4ba7805 - [libc++] Enable -Wformat-nonliteral when building libc++</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/locale#a4ba7805</link>
        <description>[libc++] Enable -Wformat-nonliteral when building libc++Using user-provided data as a format string is a well known source ofsecurity vulnerabilities. For this reason, it is a good idea to compileour code with -Wformat-nonliteral, which basically warns if a non-constantstring is used as a format specifier. This is the compiler&#8217;s best signalthat a format string call may be insecure.I audited the code after adding the warning and made sure that the fewplaces where we used a non-literal string as a format string were notpotential security issues. I either disabled the warning locally forthose instances or fixed the warning by using a literal. The idea isthat after we add the warning to the build, any new use of a non-literalstring in a format string will trigger a diagnostic, and we can eitherget rid of it or disable the warning locally, which is a way ofacknowledging that it has been audited.I also looked into enabling it in the test suite, which would perhapsallow finding additional instances of it in our headers, however thatis not possible at the moment because Clang doesn&apos;t support putting__attribute__((__format__(...))) on variadic templates, which wouldbe needed.rdar://84571685Differential Revision: https://reviews.llvm.org/D112927

            List of files:
            /llvm-project-15.0.7/libcxx/include/locale</description>
        <pubDate>Fri, 29 Oct 2021 16:36:57 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
