<?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 span</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>d761fe6e - [libc++] Add a missing assertion in std::span&apos;s constructor</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#d761fe6e</link>
        <description>[libc++] Add a missing assertion in std::span&apos;s constructorAlso, add missing tests for assertions in span constructors. Now Ibelieve that all of std::span&apos;s API should be hardened, and all theassertions should have a corresponding test.Differential Revision: https://reviews.llvm.org/D131681(cherry picked from commit 8c6319e30a357fb9b25db09b6f5fc9cf3e7c4aab)

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Thu, 11 Aug 2022 14:28:43 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&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/span#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/span</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>633d1d0d - [libc++] Use bounded iterators in std::span when the debug mode is enabled</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#633d1d0d</link>
        <description>[libc++] Use bounded iterators in std::span when the debug mode is enabledPreviously, we&apos;d use raw pointers when the debug mode was enabled,which means we wouldn&apos;t get out-of-range checking with std::span&apos;siterators.This patch introduces a new class called __bounded_iter which canbe used to wrap iterators and make them carry around bounds-relatedinformation. This allows iterators to assert when they are dereferencedoutside of their bounds.As a fly-by change, this commit removes the _LIBCPP_ABI_SPAN_POINTER_ITERATORSknob. Indeed, not using a raw pointer as the iterator type is useful toavoid users depending on properties of raw pointers in their code.This is an alternative to D127401.Differential Revision: https://reviews.llvm.org/D127418

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Mon, 06 Jun 2022 18:01:38 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>db1978b6 - [libc++] Mark standard-mandated includes as such</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#db1978b6</link>
        <description>[libc++] Mark standard-mandated includes as suchReviewed By: ldionne, Mordante, #libc, saugustineSpies: saugustine, MaskRay, arichardson, mstorsjo, jloser, libcxx-commits, arphamanDifferential Revision: https://reviews.llvm.org/D127953

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Thu, 16 Jun 2022 20:43:46 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&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/span#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/span</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>cb48ed38 - [libc++][NFCI] span: replace enable_if with concepts</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#cb48ed38</link>
        <description>[libc++][NFCI] span: replace enable_if with conceptsSeveral span constructors use `enable_if` which is verbose. Replace these withconcepts or requires expressions.

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Wed, 15 Jun 2022 03:25:50 +0000</pubDate>
        <dc:creator>Joe Loser &lt;joeloser93@gmail.com&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/span#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/span</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>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/span#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/span</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>4eab04f8 - [libc++] Remove a bunch of conditionals on _LIBCPP_DEBUG_LEVEL</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#4eab04f8</link>
        <description>[libc++] Remove a bunch of conditionals on _LIBCPP_DEBUG_LEVELInstead of providing two different constructors for iterators thatsupport the debug mode, provide a single constructor but leave thecontainer parameter unused when the debug mode is not enabled.This allows simplifying all the call sites to unconditionally passthe container, which removes a bunch of duplication in the container&apos;simplementation.Note that this patch does add some complexity to std::span, howeverthat is only because std::span has the ability to use raw pointersas iterators instead of __wrap_iter. In retrospect, I believe it wasa mistake to provide that capability, and so it will be removed in afuture patch, along with the complexity added by this patch.Differential Revision: https://reviews.llvm.org/D126993

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Fri, 03 Jun 2022 19:17:03 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>643df8fa - [libc++] Make sure that all headers can be included with modules enabled</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#643df8fa</link>
        <description>[libc++] Make sure that all headers can be included with modules enabledThis commit ensures that we can include all libc++ headers with modulesenabled. It adds a test to ensure that this doesn&apos;t regress, which isnecessary because our modules CI job does not build in all Standard modes.Differential Revision: https://reviews.llvm.org/D125331

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Tue, 10 May 2022 19:27:52 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>9924d8d6 - [libc++][ranges] Implement `views::take`.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#9924d8d6</link>
        <description>[libc++][ranges] Implement `views::take`.The view itself has been implemented previously -- this patch only addsthe ability to pipe it.Also implements [P1739](https://wg21.link/p1739) (partially) and [LWG3407](https://wg21.link/lwg3407).Differential Revision: https://reviews.llvm.org/D123600

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Fri, 06 May 2022 20:33:33 +0000</pubDate>
        <dc:creator>Konstantin Varlamov &lt;varconst@apple.com&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/span#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/span</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>6a7f0551 - [libc++] Re-enable workaround for pre-ranges CTAD in std::span</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#6a7f0551</link>
        <description>[libc++] Re-enable workaround for pre-ranges CTAD in std::spanSee https://reviews.llvm.org/D121626 for details -- this re-enables theCTAD we removed, since it does break some stuff as well (even though it&apos;snot nearly as bad as the removed constructors fixed by D121626).Differential Revision: https://reviews.llvm.org/D122184

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Mon, 21 Mar 2022 21:05:06 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d4c39f1a - [libc++] Add workaround to avoid breaking users of &lt;span&gt; when &lt;ranges&gt; are disabled</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#d4c39f1a</link>
        <description>[libc++] Add workaround to avoid breaking users of &lt;span&gt; when &lt;ranges&gt; are disabledBack in 3a208c68942e, we implemented the range-based constructor for &lt;span&gt;.However, in doing so, we removed a previous non-standard constructor thatwe provided before shipping &lt;ranges&gt;. Unfortunately, that breaks code thatwas relying on a range-based constructor until we ship all of &lt;ranges&gt;.This patch reintroduces the old non-conforming constructors and teststhat were removed in 3a208c68942e and uses them whenever &lt;ranges&gt; isnot provided (e.g. in LLVM 14). This is only a temporary workarounduntil we enable &lt;ranges&gt; by default in C++20, which should hopefullyhappen by LLVM 15.The goal is to cherry-pick this workaround back to the LLVM 14 releasebranch, since I suspect the constructor removal may otherwise causebreakage out there, like the breakage I saw internally.We could have avoided this situation by waiting for C++20 to be finalizedbefore shipping std::span. For example, we could have guarded it withsomething like _LIBCPP_HAS_NO_INCOMPLETE_RANGES to prevent users fromaccidentally starting to depend on it before it is stable. We did nothave these mechanisms when std::span was first implemented, though.Differential Revision: https://reviews.llvm.org/D121626

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Mon, 14 Mar 2022 15:50:02 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>849e749d - [libc++][NFC] Remove several redundant #if _LIBCPP_STD_VER &gt; 17 in &lt;span&gt;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#849e749d</link>
        <description>[libc++][NFC] Remove several redundant #if _LIBCPP_STD_VER &gt; 17 in &lt;span&gt;It turns out that the whole header is only enabled in C++20 and above,so these checks were redundant (and always true).Differential Revision: https://reviews.llvm.org/D121604

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Mon, 14 Mar 2022 15:36:21 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&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/span#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/span</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>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/span#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/span</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>53406fb6 - [libc++] Guard much of std::ranges under _LIBCPP_HAS_NO_INCOMPLETE_RANGES.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#53406fb6</link>
        <description>[libc++] Guard much of std::ranges under _LIBCPP_HAS_NO_INCOMPLETE_RANGES.The logic here is that we are disabling *only* things in `std::ranges::`.Everything in `std::` is permitted, including `default_sentinel`, `contiguous_iterator`,`common_iterator`, `projected`, `swappable`, and so on. Then, we includeanything from `std::ranges::` that is required in order to make those thingswork: `ranges::swap`, `ranges::swap_ranges`, `input_range`, `ranges::begin`,`ranges::iter_move`, and so on. But then that&apos;s all. Everything else (includingnotably all of the &quot;views&quot; and the `std::views` namespace itself) is stilllocked up behind `_LIBCPP_HAS_NO_INCOMPLETE_RANGES`.Differential Revision: https://reviews.llvm.org/D118736

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Tue, 01 Feb 2022 21:52:02 +0000</pubDate>
        <dc:creator>Arthur O&apos;Dwyer &lt;arthur.j.odwyer@gmail.com&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/span#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/span</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>2eb2ff2a - [libc++] Merge _LIBCPP_HAS_NO_RANGES into _LIBCPP_HAS_NO_CONCEPTS. NFC.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/span#2eb2ff2a</link>
        <description>[libc++] Merge _LIBCPP_HAS_NO_RANGES into _LIBCPP_HAS_NO_CONCEPTS. NFC.The macro that opts out of `std::ranges::` functionality is called`_LIBCPP_HAS_NO_INCOMPLETE_RANGES`, and is unrelated to this macrowhich is specifically about _compiler_ support for the _syntax_.The only non-mechanical diff here is in `&lt;__config&gt;`.Differential Revision: https://reviews.llvm.org/D118507

            List of files:
            /llvm-project-15.0.7/libcxx/include/span</description>
        <pubDate>Mon, 31 Jan 2022 17:04:08 +0000</pubDate>
        <dc:creator>Arthur O&apos;Dwyer &lt;arthur.j.odwyer@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
