cb424d7448
verify-patch-sanity.py validates every active recipe .patch has internally- consistent hunk line counts — catching the 'malformed patch at line N' failure at commit/CI/preflight time instead of hours into a cook. This cycle hit that class three times (qtwaylandscanner, sddm, xwayland), each only discovered when cookbook tried to apply the patch. Running it across the repo found 29 latent malformed patches (validated against GNU patch: e.g. relibc/P3-sysv-ipc reproduces 'malformed patch at line 22'). They were harmless only because they sit in vendored recipes (baked, not re- applied) — but would fail on any version-bump re-derivation. --fix recounts the hunk headers (body untouched) and repaired all 29. Wired into build-preflight.sh (Phase 1.0D) and redbear-ci.yml, with a unit test (test-patch-sanity.sh). Skips archived/legacy trees and unvalidatable formats (empty placeholders, bare-@@ git hunks).
15 KiB
15 KiB
| 1 | Paper # | Paper Name | Meeting | Status | First released version | Notes |
|---|---|---|---|---|---|---|
| 2 | `P0881R7 <https://wg21.link/P0881R7>`__ | A Proposal to add stacktrace library | 2020-11 (Virtual) | |||
| 3 | `P0943R6 <https://wg21.link/P0943R6>`__ | Support C atomics in C++ | 2020-11 (Virtual) | |Complete| | 15 | |
| 4 | `P1048R1 <https://wg21.link/P1048R1>`__ | A proposal for a type trait to detect scoped enumerations | 2020-11 (Virtual) | |Complete| | 12 | |
| 5 | `P1679R3 <https://wg21.link/P1679R3>`__ | string contains function | 2020-11 (Virtual) | |Complete| | 12 | |
| 6 | ||||||
| 7 | `P1682R3 <https://wg21.link/P1682R3>`__ | std::to_underlying for enumerations | 2021-02 (Virtual) | |Complete| | 13 | |
| 8 | `P2017R1 <https://wg21.link/P2017R1>`__ | Conditionally borrowed ranges | 2021-02 (Virtual) | |Complete| | 16 | |
| 9 | `P2160R1 <https://wg21.link/P2160R1>`__ | Locks lock lockables | 2021-02 (Virtual) | |Nothing To Do| | ||
| 10 | `P2162R2 <https://wg21.link/P2162R2>`__ | Inheriting from std::variant | 2021-02 (Virtual) | |Complete| | 13 | |
| 11 | `P2212R2 <https://wg21.link/P2212R2>`__ | Relax Requirements for time_point::clock | 2021-02 (Virtual) | |Nothing To Do| | ||
| 12 | `P2259R1 <https://wg21.link/P2259R1>`__ | Repairing input range adaptors and counted_iterator | 2021-02 (Virtual) | |||
| 13 | ||||||
| 14 | `P0401R6 <https://wg21.link/P0401R6>`__ | Providing size feedback in the Allocator interface | 2021-06 (Virtual) | |Complete| | 15 | |
| 15 | `P0448R4 <https://wg21.link/P0448R4>`__ | A strstream replacement using span<charT> as buffer | 2021-06 (Virtual) | |||
| 16 | `P1132R8 <https://wg21.link/P1132R8>`__ | out_ptr - a scalable output pointer abstraction | 2021-06 (Virtual) | |Complete| | 19 | |
| 17 | `P1328R1 <https://wg21.link/P1328R1>`__ | Making std::type_info::operator== constexpr | 2021-06 (Virtual) | |Complete| | 17 | |
| 18 | `P1425R4 <https://wg21.link/P1425R4>`__ | Iterators pair constructors for stack and queue | 2021-06 (Virtual) | |Complete| | 14 | |
| 19 | `P1518R2 <https://wg21.link/P1518R2>`__ | Stop overconstraining allocators in container deduction guides | 2021-06 (Virtual) | |Complete| | 13 | |
| 20 | `P1659R3 <https://wg21.link/P1659R3>`__ | starts_with and ends_with | 2021-06 (Virtual) | |Complete| | 19 | |
| 21 | `P1951R1 <https://wg21.link/P1951R1>`__ | Default Arguments for pair Forwarding Constructor | 2021-06 (Virtual) | |Complete| | 14 | |
| 22 | `P1989R2 <https://wg21.link/P1989R2>`__ | Range constructor for std::string_view | 2021-06 (Virtual) | |Complete| | 14 | |
| 23 | `P2136R3 <https://wg21.link/P2136R3>`__ | invoke_r | 2021-06 (Virtual) | |Complete| | 17 | |
| 24 | `P2166R1 <https://wg21.link/P2166R1>`__ | A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr | 2021-06 (Virtual) | |Complete| | 13 | |
| 25 | ||||||
| 26 | `P0288R9 <https://wg21.link/P0288R9>`__ | ``any_invocable`` | 2021-10 (Virtual) | |||
| 27 | `P0798R8 <https://wg21.link/P0798R8>`__ | Monadic operations for ``std::optional`` | 2021-10 (Virtual) | |Complete| | 14 | |
| 28 | `P0849R8 <https://wg21.link/P0849R8>`__ | ``auto(x)``: ``DECAY_COPY`` in the language | 2021-10 (Virtual) | |Complete| | 14 | |
| 29 | `P1072R10 <https://wg21.link/P1072R10>`__ | ``basic_string::resize_and_overwrite`` | 2021-10 (Virtual) | |Complete| | 14 | |
| 30 | `P1147R1 <https://wg21.link/P1147R1>`__ | Printing ``volatile`` Pointers | 2021-10 (Virtual) | |Complete| | 14 | |
| 31 | `P1272R4 <https://wg21.link/P1272R4>`__ | Byteswapping for fun&&nuf | 2021-10 (Virtual) | |Complete| | 14 | |
| 32 | `P1675R2 <https://wg21.link/P1675R2>`__ | ``rethrow_exception`` must be allowed to copy | 2021-10 (Virtual) | |Nothing To Do| | ||
| 33 | `P2077R3 <https://wg21.link/P2077R3>`__ | Heterogeneous erasure overloads for associative containers | 2021-10 (Virtual) | |||
| 34 | `P2251R1 <https://wg21.link/P2251R1>`__ | Require ``span`` & ``basic_string_view`` to be Trivially Copyable | 2021-10 (Virtual) | |Complete| | 14 | |
| 35 | `P2301R1 <https://wg21.link/P2301R1>`__ | Add a ``pmr`` alias for ``std::stacktrace`` | 2021-10 (Virtual) | |||
| 36 | `P2321R2 <https://wg21.link/P2321R2>`__ | ``zip`` | 2021-10 (Virtual) | |In Progress| | ||
| 37 | `P2340R1 <https://wg21.link/P2340R1>`__ | Clarifying the status of the 'C headers' | 2021-10 (Virtual) | |Nothing To Do| | ||
| 38 | `P2393R1 <https://wg21.link/P2393R1>`__ | Cleaning up ``integer``-class types | 2021-10 (Virtual) | |||
| 39 | `P2401R0 <https://wg21.link/P2401R0>`__ | Add a conditional ``noexcept`` specification to ``std::exchange`` | 2021-10 (Virtual) | |Complete| | 14 | |
| 40 | ||||||
| 41 | `P0323R12 <https://wg21.link/P0323R12>`__ | ``std::expected`` | 2022-02 (Virtual) | |Complete| | 16 | |
| 42 | `P0533R9 <https://wg21.link/P0533R9>`__ | ``constexpr`` for ``<cmath>`` and ``<cstdlib>`` | 2022-02 (Virtual) | |In Progress| | ``isfinite``, ``isinf``, ``isnan`` and ``isnormal`` are implemented | |
| 43 | `P0627R6 <https://wg21.link/P0627R6>`__ | Function to mark unreachable code | 2022-02 (Virtual) | |Complete| | 15 | |
| 44 | `P1206R7 <https://wg21.link/P1206R7>`__ | ``ranges::to``: A function to convert any range to a container | 2022-02 (Virtual) | |Complete| | 17 | |
| 45 | `P1413R3 <https://wg21.link/P1413R3>`__ | Deprecate ``std::aligned_storage`` and ``std::aligned_union`` | 2022-02 (Virtual) | |Complete| | ``std::aligned_storage_t`` and ``std::aligned_union_t`` are marked deprecated, but clang doesn't issue a diagnostic for deprecated using template declarations. | |
| 46 | `P2255R2 <https://wg21.link/P2255R2>`__ | A type trait to detect reference binding to temporary | 2022-02 (Virtual) | |Partial| | Implemented the type traits only. | |
| 47 | `P2273R3 <https://wg21.link/P2273R3>`__ | Making ``std::unique_ptr`` constexpr | 2022-02 (Virtual) | |Complete| | 16 | |
| 48 | `P2387R3 <https://wg21.link/P2387R3>`__ | Pipe support for user-defined range adaptors | 2022-02 (Virtual) | |Complete| | 19 | |
| 49 | `P2440R1 <https://wg21.link/P2440R1>`__ | ``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right`` | 2022-02 (Virtual) | |Partial| | Only ``ranges::iota`` is implemented. | |
| 50 | `P2441R2 <https://wg21.link/P2441R2>`__ | ``views::join_with`` | 2022-02 (Virtual) | |Complete| | 21 | |
| 51 | `P2442R1 <https://wg21.link/P2442R1>`__ | Windowing range adaptors: ``views::chunk`` and ``views::slide`` | 2022-02 (Virtual) | |||
| 52 | `P2443R1 <https://wg21.link/P2443R1>`__ | ``views::chunk_by`` | 2022-02 (Virtual) | |Complete| | 18 | |
| 53 | ||||||
| 54 | `P0009R18 <https://wg21.link/P0009R18>`__ | mdspan: A Non-Owning Multidimensional Array Reference | 2022-07 (Virtual) | |Complete| | 18 | |
| 55 | `P0429R9 <https://wg21.link/P0429R9>`__ | A Standard ``flat_map`` | 2022-07 (Virtual) | |Complete| | 20 | |
| 56 | `P1169R4 <https://wg21.link/P1169R4>`__ | ``static operator()`` | 2022-07 (Virtual) | |Complete| | 16 | |
| 57 | `P1222R4 <https://wg21.link/P1222R4>`__ | A Standard ``flat_set`` | 2022-07 (Virtual) | |Complete| | 21 | |
| 58 | `P1223R5 <https://wg21.link/P1223R5>`__ | ``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()`` | 2022-07 (Virtual) | |Complete| | 19 | |
| 59 | `P1467R9 <https://wg21.link/P1467R9>`__ | Extended ``floating-point`` types and standard names | 2022-07 (Virtual) | |||
| 60 | `P1642R11 <https://wg21.link/P1642R11>`__ | Freestanding ``[utilities]``, ``[ranges]``, and ``[iterators]`` | 2022-07 (Virtual) | |||
| 61 | `P1899R3 <https://wg21.link/P1899R3>`__ | ``stride_view`` | 2022-07 (Virtual) | |||
| 62 | `P2093R14 <https://wg21.link/P2093R14>`__ | Formatted output | 2022-07 (Virtual) | |Complete| | 18 | |
| 63 | `P2165R4 <https://wg21.link/P2165R4>`__ | Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects | 2022-07 (Virtual) | |Partial| | Only the part for ``zip_view`` is implemented. | |
| 64 | `P2278R4 <https://wg21.link/P2278R4>`__ | ``cbegin`` should always return a constant iterator | 2022-07 (Virtual) | |||
| 65 | `P2286R8 <https://wg21.link/P2286R8>`__ | Formatting Ranges | 2022-07 (Virtual) | |Complete| | 16 | |
| 66 | `P2291R3 <https://wg21.link/P2291R3>`__ | Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ``<charconv>`` Header | 2022-07 (Virtual) | |Complete| | 16 | |
| 67 | `P2302R4 <https://wg21.link/P2302R4>`__ | ``std::ranges::contains`` | 2022-07 (Virtual) | |Complete| | 19 | |
| 68 | `P2322R6 <https://wg21.link/P2322R6>`__ | ``ranges::fold`` | 2022-07 (Virtual) | |||
| 69 | `P2374R4 <https://wg21.link/P2374R4>`__ | ``views::cartesian_product`` | 2022-07 (Virtual) | |||
| 70 | `P2404R3 <https://wg21.link/P2404R3>`__ | Move-only types for ``equality_comparable_with``, ``totally_ordered_with``, and ``three_way_comparable_with`` | 2022-07 (Virtual) | |||
| 71 | `P2408R5 <https://wg21.link/P2408R5>`__ | Ranges iterators as inputs to non-Ranges algorithms | 2022-07 (Virtual) | |||
| 72 | `P2417R2 <https://wg21.link/P2417R2>`__ | A more ``constexpr`` ``bitset`` | 2022-07 (Virtual) | |Complete| | 16 | |
| 73 | `P2419R2 <https://wg21.link/P2419R2>`__ | Clarify handling of encodings in localized formatting of chrono types | 2022-07 (Virtual) | |||
| 74 | `P2438R2 <https://wg21.link/P2438R2>`__ | ``std::string::substr() &&`` | 2022-07 (Virtual) | |Complete| | 16 | |
| 75 | `P2445R1 <https://wg21.link/P2445R1>`__ | ``forward_like`` | 2022-07 (Virtual) | |Complete| | 16 | |
| 76 | `P2446R2 <https://wg21.link/P2446R2>`__ | ``views::as_rvalue`` | 2022-07 (Virtual) | |Complete| | 16 | |
| 77 | `P2460R2 <https://wg21.link/P2460R2>`__ | Relax requirements on ``wchar_t`` to match existing practices | 2022-07 (Virtual) | |Nothing To Do| | ||
| 78 | `P2465R3 <https://wg21.link/P2465R3>`__ | Standard Library Modules ``std`` and ``std.compat`` | 2022-07 (Virtual) | |Complete| | 19 | |
| 79 | `P2467R1 <https://wg21.link/P2467R1>`__ | Support exclusive mode for ``fstreams`` | 2022-07 (Virtual) | |Complete| | 18 | |
| 80 | `P2474R2 <https://wg21.link/P2474R2>`__ | ``views::repeat`` | 2022-07 (Virtual) | |Complete| | 17 | |
| 81 | `P2494R2 <https://wg21.link/P2494R2>`__ | Relaxing range adaptors to allow for move only types | 2022-07 (Virtual) | |Complete| | 17 | |
| 82 | `P2499R0 <https://wg21.link/P2499R0>`__ | ``string_view`` range constructor should be ``explicit`` | 2022-07 (Virtual) | |Complete| | 16 | |
| 83 | `P2502R2 <https://wg21.link/P2502R2>`__ | ``std::generator``: Synchronous Coroutine Generator for Ranges | 2022-07 (Virtual) | |||
| 84 | `P2508R1 <https://wg21.link/P2508R1>`__ | Exposing ``std::basic-format-string`` | 2022-07 (Virtual) | |Complete| | 15 | |
| 85 | `P2517R1 <https://wg21.link/P2517R1>`__ | Add a conditional ``noexcept`` specification to ``std::apply`` | 2022-07 (Virtual) | |Complete| | 3.9 | |
| 86 | `P2520R0 <https://wg21.link/P2520R0>`__ | ``move_iterator`` should be a random access iterator | 2022-07 (Virtual) | |Complete| | 17 | Implemented as a DR in C++20 |
| 87 | `P2540R1 <https://wg21.link/P2540R1>`__ | Empty Product for certain Views | 2022-07 (Virtual) | |||
| 88 | `P2549R1 <https://wg21.link/P2549R1>`__ | ``std::unexpected`` should have ``error()`` as member accessor | 2022-07 (Virtual) | |Complete| | 16 | |
| 89 | `P2585R0 <https://wg21.link/P2585R0>`__ | Improving default container formatting | 2022-07 (Virtual) | |Complete| | 17 | |
| 90 | `P2590R2 <https://wg21.link/P2590R2>`__ | Explicit lifetime management | 2022-07 (Virtual) | |||
| 91 | `P2599R2 <https://wg21.link/P2599R2>`__ | ``mdspan::size_type`` should be ``index_type`` | 2022-07 (Virtual) | |Complete| | 18 | |
| 92 | `P2604R0 <https://wg21.link/P2604R0>`__ | mdspan: rename pointer and contiguous | 2022-07 (Virtual) | |Complete| | 18 | |
| 93 | `P2613R1 <https://wg21.link/P2613R1>`__ | Add the missing ``empty`` to ``mdspan`` | 2022-07 (Virtual) | |Complete| | 18 | |
| 94 | ||||||
| 95 | `P1202R5 <https://wg21.link/P1202R5>`__ | Asymmetric Fences | 2022-11 (Kona) | |||
| 96 | `P1264R2 <https://wg21.link/P1264R2>`__ | Revising the wording of ``stream`` input operations | 2022-11 (Kona) | |Complete| | 9 | |
| 97 | `P1478R8 <https://wg21.link/P1478R8>`__ | ``Byte-wise`` ``atomic`` ``memcpy`` | 2022-11 (Kona) | |||
| 98 | `P2167R3 <https://wg21.link/P2167R3>`__ | Improved Proposed Wording for LWG 2114 | 2022-11 (Kona) | |Complete| | 20 | The `[cmp.alg] <https://eel.is/c++draft/cmp.alg>`__ part is implemented as a DR against C++20. MSVC STL does the same. Other parts are Nothing To Do. |
| 99 | `P2396R1 <https://wg21.link/P2396R1>`__ | Concurrency TS 2 fixes | 2022-11 (Kona) | |||
| 100 | `P2505R5 <https://wg21.link/P2505R5>`__ | Monadic Functions for ``std::expected`` | 2022-11 (Kona) | |Complete| | 17 | |
| 101 | `P2539R4 <https://wg21.link/P2539R4>`__ | Should the output of ``std::print`` to a terminal be synchronized with the underlying stream? | 2022-11 (Kona) | |Complete| | 18 | |
| 102 | `P2602R2 <https://wg21.link/P2602R2>`__ | Poison Pills are Too Toxic | 2022-11 (Kona) | |Complete| | 19 | Implemented as a DR in C++20. |
| 103 | `P2708R1 <https://wg21.link/P2708R1>`__ | No Further Fundamentals TSes | 2022-11 (Kona) | |Nothing To Do| | ||
| 104 | ||||||
| 105 | `P0290R4 <https://wg21.link/P0290R4>`__ | ``apply()`` for ``synchronized_value<T>`` | 2023-02 (Issaquah) | |||
| 106 | `P2770R0 <https://wg21.link/P2770R0>`__ | Stashing stashing ``iterators`` for proper flattening | 2023-02 (Issaquah) | |Complete| | 21 | |
| 107 | `P2164R9 <https://wg21.link/P2164R9>`__ | ``views::enumerate`` | 2023-02 (Issaquah) | |||
| 108 | `P2711R1 <https://wg21.link/P2711R1>`__ | Making multi-param constructors of ``views`` ``explicit`` | 2023-02 (Issaquah) | |Complete| | 21 | |
| 109 | `P2609R3 <https://wg21.link/P2609R3>`__ | Relaxing Ranges Just A Smidge | 2023-02 (Issaquah) | |Complete| | 20 | Implemented as a DR in C++20. Other implementations will do the same. |
| 110 | `P2713R1 <https://wg21.link/P2713R1>`__ | Escaping improvements in ``std::format`` | 2023-02 (Issaquah) | |Complete| | 19 | |
| 111 | `P2675R1 <https://wg21.link/P2675R1>`__ | ``format``'s width estimation is too approximate and not forward compatible | 2023-02 (Issaquah) | |Complete| | 17 | |
| 112 | `P2572R1 <https://wg21.link/P2572R1>`__ | ``std::format`` fill character allowances | 2023-02 (Issaquah) | |Complete| | 17 | |
| 113 | `P2693R1 <https://wg21.link/P2693R1>`__ | Formatting ``thread::id`` and ``stacktrace`` | 2023-02 (Issaquah) | |Partial| | The formatter for ``stacktrace`` is not implemented, since ``stacktrace`` is not implemented yet | |
| 114 | `P2679R2 <https://wg21.link/P2679R2>`__ | Fixing ``std::start_lifetime_as`` for arrays | 2023-02 (Issaquah) | |||
| 115 | `P2674R1 <https://wg21.link/P2674R1>`__ | A trait for implicit lifetime types | 2023-02 (Issaquah) | |Complete| | 20 | |
| 116 | `P2655R3 <https://wg21.link/P2655R3>`__ | ``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type | 2023-02 (Issaquah) | |Complete| | 21 | The paper is implemented as a DR to C++20 |
| 117 | `P2652R2 <https://wg21.link/P2652R2>`__ | Disallow User Specialization of ``allocator_traits`` | 2023-02 (Issaquah) | |Complete| | 19 | |
| 118 | `P2787R1 <https://wg21.link/P2787R1>`__ | ``pmr::generator`` - Promise Types are not Values | 2023-02 (Issaquah) | |||
| 119 | `P2614R2 <https://wg21.link/P2614R2>`__ | Deprecate ``numeric_limits::has_denorm`` | 2023-02 (Issaquah) | |Complete| | 18 | |
| 120 | `P2588R3 <https://wg21.link/P2588R3>`__ | ``barrier``’s phase completion guarantees | 2023-02 (Issaquah) | |||
| 121 | `P2763R1 <https://wg21.link/P2763R1>`__ | ``layout_stride`` static extents default constructor fix | 2023-02 (Issaquah) | |||
| 122 | `P2736R2 <https://wg21.link/P2736R2>`__ | Referencing The Unicode Standard | 2023-02 (Issaquah) | |Complete| | 19 |