<?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 array</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>f69585235ec85d54e0f3fc41b2d5700430907f99 - [libc++] Put _LIBCPP_NODEBUG on all internal aliases (#118710)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#f69585235ec85d54e0f3fc41b2d5700430907f99</link>
        <description>[libc++] Put _LIBCPP_NODEBUG on all internal aliases (#118710)This significantly reduces the amount of debug information generatedfor codebases using libc++, without hurting the debugging experience.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Wed, 08 Jan 2025 16:12:59 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<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/array#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/array</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>9474e09459189fbed30f329a669f9c14979c5367 - [libc++] Granularize the &lt;new&gt; header (#119270)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#9474e09459189fbed30f329a669f9c14979c5367</link>
        <description>[libc++] Granularize the &lt;new&gt; header (#119270)This disentangles the code which previously had a mix of many #ifdefs, anon-versioned namespace and a versioned namespace. It also makes itclearer which parts of &lt;new&gt; are implemented on Windows by including &lt;new.h&gt;.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Fri, 13 Dec 2024 19:17:56 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&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/array#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/array</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>427a5cf105c409993c812f4fb1868bac96fce0c5 - [libc++] Add support for bounded iterators in std::array (#110729)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#427a5cf105c409993c812f4fb1868bac96fce0c5</link>
        <description>[libc++] Add support for bounded iterators in std::array (#110729)This patch introduces a new kind of bounded iterator that knows the sizeof its valid range at compile-time, as in std::array. This allows computingthe end of the range from the start of the range and the size, which requiresstoring only the start of the range in the iterator instead of both the startand the size (or start and end). The iterator wrapper is otherwise identicalin design to the existing __bounded_iter.Since this requires changing the type of the iterators returned bystd::array, this new bounded iterator is controlled by an ABI flag.As a drive-by, centralize the tests for std::array::operator[] and addmissing tests for OOB operator[] on non-empty arrays.Fixes #70864

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Thu, 07 Nov 2024 14:23:21 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>e99c4906e44ae3f921fa05356909d006cda8d954 - [libc++] Granularize &lt;cstddef&gt; includes (#108696)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#e99c4906e44ae3f921fa05356909d006cda8d954</link>
        <description>[libc++] Granularize &lt;cstddef&gt; includes (#108696)

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Thu, 31 Oct 2024 01:20:10 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>09e3a360581dc36d0820d3fb6da9bd7cfed87b5d - [libc++][modules] Fix missing and incorrect includes (#108850)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#09e3a360581dc36d0820d3fb6da9bd7cfed87b5d</link>
        <description>[libc++][modules] Fix missing and incorrect includes (#108850)This patch adds a large number of missing includes in the libc++ headersand the test suite. Those were found as part of the effort to movetowards a mostly monolithic top-level std module.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Mon, 16 Sep 2024 19:06:20 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>17e0686ab1107a1a675d8783383dedf70fa24033 - [libc++][NFC] Use [[__nodiscard__]] unconditionally (#80454)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#17e0686ab1107a1a675d8783383dedf70fa24033</link>
        <description>[libc++][NFC] Use [[__nodiscard__]] unconditionally (#80454)`__has_cpp_attribute(__nodiscard__)` is always true now, so we might aswell replace `_LIBCPP_NODISCARD`. It&apos;s one less macro that can result inbad diagnostics.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Thu, 12 Sep 2024 19:18:43 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>348e74139ad7f06fdf8b332a81842de4bdf03b0c - [libc++][NFC] Run clang-format on libcxx/include</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#348e74139ad7f06fdf8b332a81842de4bdf03b0c</link>
        <description>[libc++][NFC] Run clang-format on libcxx/includeThis re-formats a few headers that had become out-of-sync with respectto formatting since we ran clang-format on the whole codebase. There&apos;ssurprisingly few instances of it.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Fri, 30 Aug 2024 16:07:07 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d067062a42b0ce591f03c15cb76fe0fb27d1d9c1 - [libc++] fix `array&lt;T, 0&gt;` under `USE_WRAP_ITER` (#101156)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#d067062a42b0ce591f03c15cb76fe0fb27d1d9c1</link>
        <description>[libc++] fix `array&lt;T, 0&gt;` under `USE_WRAP_ITER` (#101156)`array&lt;T, 0&gt;::iterator` was always a pointer even when`_LIBCXX_ABI_USE_WRAP_ITER_IN_STD_ARRAY` was defined. This patch fixesthat minor bug.Discovered as part of [#100603][].Drive-by: switch from `typedef` to `using` in `&lt;array&gt;`[#100603]: https://github.com/llvm/llvm-project/pull/100603

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Tue, 30 Jul 2024 18:24:11 +0000</pubDate>
        <dc:creator>nicole mazzuca &lt;nicole@strega-nil.co&gt;</dc:creator>
    </item>
<item>
        <title>d043e4c322489fa5b9f6363e3c83984219c2b602 - [libc++] Restore `__synth_three_way` lambda (#90398)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#d043e4c322489fa5b9f6363e3c83984219c2b602</link>
        <description>[libc++] Restore `__synth_three_way` lambda (#90398)Restore `__synth_three_way` lambda to match the Standard. GH-57222 is done, restoring the Standard wording implementation shouldbe possible.https://github.com/llvm/llvm-project/blob/df28d4412c1d21b0e18896c92ac77d2fac7729f1/libcxx/include/__compare/synth_three_way.h#L28According to commenthttps://github.com/llvm/llvm-project/issues/59513#issuecomment-2068338762,GH-59513 is not a blocker.Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Sun, 07 Jul 2024 17:49:10 +0000</pubDate>
        <dc:creator>Hristo Hristov &lt;hghristov.rmm@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>e2c2ffbe7a1b5d9e32a2ce64279475b50c4cba5b - [libc++][NFC] Run clang-format on libcxx/include again (#95874)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#e2c2ffbe7a1b5d9e32a2ce64279475b50c4cba5b</link>
        <description>[libc++][NFC] Run clang-format on libcxx/include again (#95874)As time went by, a few files have become mis-formatted w.r.t.clang-format. This was made worse by the fact that formatting was notbeing enforced in extensionless headers. This commit simply brings allof libcxx/include in-line with clang-format again.We might have to do this from time to time as we update our clang-formatversion, but frankly this is really low effort now that we&apos;ve formattedeverything once.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Tue, 18 Jun 2024 13:13:45 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>cb417401879ce70b441a999c4a30f7b64b8d426b - [libc++] Refactor&lt;__type_traits/is_swappable.h&gt; (#86822)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#cb417401879ce70b441a999c4a30f7b64b8d426b</link>
        <description>[libc++] Refactor&lt;__type_traits/is_swappable.h&gt; (#86822)This changes the `is_swappable` implementation to use variable templatesfirst and basing the class templates on that. This avoids instantiatingthem when the `_v` versions are used, which are generally less resourceintensive.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Tue, 18 Jun 2024 09:01:43 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>1ba8ed0cd7d03ed9b70aaf32b3d8e9205ef95ef2 - [libc++] Mark more types as trivially relocatable (#89724)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#1ba8ed0cd7d03ed9b70aaf32b3d8e9205ef95ef2</link>
        <description>[libc++] Mark more types as trivially relocatable (#89724)Co-authored-by: Louis Dionne &lt;ldionne.2@gmail.com&gt;

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Mon, 17 Jun 2024 11:09:04 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>83bc7b57714dc2f6b33c188f2b95a0025468ba51 - [libc++] Remove _LIBCPP_DISABLE_NODISCARD_EXTENSIONS and refactor the tests (#87094)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#83bc7b57714dc2f6b33c188f2b95a0025468ba51</link>
        <description>[libc++] Remove _LIBCPP_DISABLE_NODISCARD_EXTENSIONS and refactor the tests (#87094)This also adds a few tests that were missing.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Mon, 22 Apr 2024 20:13:58 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>580f60484e193b4f7f853ea34cc35f4a3240dfa7 - [libc++][NFC] Merge is{,_nothrow,_trivially}{,_copy,_move,_default}{_assignable,_constructible} (#85308)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#580f60484e193b4f7f853ea34cc35f4a3240dfa7</link>
        <description>[libc++][NFC] Merge is{,_nothrow,_trivially}{,_copy,_move,_default}{_assignable,_constructible} (#85308)These headers have become very small by using compiler builtins, oftencontaining only two declarations. This merges these headers, sincethere doesn&apos;t seem to be much of a benefit keeping them separate.Specifically, `is_{,_nothrow,_trivially}{assignable,constructible}` arekept and the `copy`, `move` and `default` versions of these type traitsare moved in to the respective headers.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Mon, 18 Mar 2024 07:29:44 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>95c1313f253cd343ee0b20cb7af7c71d904d96be - [libc++] Remove a few includes from &lt;__functional/hash.h&gt; (#83254)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#95c1313f253cd343ee0b20cb7af7c71d904d96be</link>
        <description>[libc++] Remove a few includes from &lt;__functional/hash.h&gt; (#83254)This also moves `__all` from `sfinae_helpers.h` to `conjunction.h`.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Thu, 14 Mar 2024 18:49:37 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>5174b3802575425dcbc58680ccce10961fdb8b67 - [libc++] Use __wrap_iter in string_view and array in the unstable ABI (#74482)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#5174b3802575425dcbc58680ccce10961fdb8b67</link>
        <description>[libc++] Use __wrap_iter in string_view and array in the unstable ABI (#74482)std::string_view and std::array iterators don&apos;t have to be raw pointers,and in fact other implementations don&apos;t represent them as raw pointers.Them being raw pointers in libc++ makes it easier for users to writenon-portable code. This is bad in itself, but this is even worse whenconsidering efforts like hardening where we want an easy ability toswap for a different iterator type. If users depend on iterators beingraw pointers, this becomes a build break.Hence, this patch enables the use of __wrap_iter in the unstable ABI,creating a long term path towards making this the default. This patchmay break code that assumes these iterators are raw pointers forpeople compiling with the unstable ABI.This patch also removes several assumptions that array iterators areraw pointers in the code base and in the test suite.

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Mon, 04 Mar 2024 23:23:53 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&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/array#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/array</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>7b4622514d232ce5f7110dd8b20d90e81127c467 - [libc++] Fix missing and incorrect push/pop macros (#79204)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/history/llvm-project/libcxx/include/array#7b4622514d232ce5f7110dd8b20d90e81127c467</link>
        <description>[libc++] Fix missing and incorrect push/pop macros (#79204)We recently noticed that the unwrap_iter.h file was pushing macros, butit was pushing them again instead of popping them at the end of thefile. This led to libc++ basically swallowing any custom definition ofthese macros in user code:    #define min HELLO    #include &lt;algorithm&gt;    // min is not HELLO anymore, it&apos;s not definedWhile investigating this issue, I noticed that our push/pop pragmas wereactually entirely wrong too. Indeed, instead of pushing macros like`move`, we&apos;d push `move(int, int)` in the pragma, which is not a validmacro name. As a result, we would not actually push macros like `move`-- instead we&apos;d simply undefine them. This led to the following code notworking:    #define move HELLO    #include &lt;algorithm&gt;    // move is not HELLO anymoreFixing the pragma push/pop incantations led to a cascade of issuesbecause we use identifiers like `move` in a large number of places, andall of these headers would now need to do the push/pop dance.This patch fixes all these issues. First, it adds a check that we don&apos;tswallow important names like min, max, move or refresh as explainedabove. This is done by augmenting the existingsystem_reserved_names.gen.py test to also check that the macros are whatwe expect after including each header.Second, it fixes the push/pop pragmas to work properly and adds missingpragmas to all the files I could detect a failure in via the newly addedtest.rdar://121365472

            List of files:
            /llvm-project/libcxx/include/array</description>
        <pubDate>Thu, 25 Jan 2024 20:48:46 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
