Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[libc++] Replace 'tags' in CSV status pages by inline notes #105581

Merged
merged 6 commits into from
Aug 28, 2024

Conversation

ldionne
Copy link
Member

@ldionne ldionne commented Aug 21, 2024

This patch replaces 'tags' in the CSV status pages by inline notes
that optionally describe more details about the paper/LWG issue.

Tags were not really useful anymore because we have a vastly superior
tagging system via Github issues, and keeping the tags up-to-date
between CSV files and Github is going to be really challenging.

This patch also adds support for encoding custom notes in the CSV
files via Github issues. To encode a note in the CSV file, the
body (initial description) of a Github issue can be edited to contain
the following markers:

BEGIN-RST-NOTES
text that will be added as a note in the RST
END-RST-NOTES

Amongst other things, this solves the problem of conveying that a
paper has been implemented as a DR, and it gives a unified way to
add notes to the status pages from Github.

@ldionne ldionne requested a review from a team as a code owner August 21, 2024 20:44
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Aug 21, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented Aug 21, 2024

@llvm/pr-subscribers-libcxx

Author: Louis Dionne (ldionne)

Changes

We used to provide associate labels to individual rows in the status tracking CSV files. This was useful to find issues related to a specific part of the library. However, since we now have Github to track this information, using labels in the CSV files is not really useful.

Furthermore, keeping the labels synchronized between the CSV files and the ever-changing Github issues is going to be very challenging.


Patch is 409.55 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/105581.diff

10 Files Affected:

  • (modified) libcxx/docs/Helpers/Styles.rst (-23)
  • (modified) libcxx/docs/Status/Cxx17Issues.csv (+314-314)
  • (modified) libcxx/docs/Status/Cxx17Papers.csv (+113-113)
  • (modified) libcxx/docs/Status/Cxx20Issues.csv (+302-302)
  • (modified) libcxx/docs/Status/Cxx20Papers.csv (+206-206)
  • (modified) libcxx/docs/Status/Cxx23Issues.csv (+308-308)
  • (modified) libcxx/docs/Status/Cxx23Papers.csv (+123-123)
  • (modified) libcxx/docs/Status/Cxx2cIssues.csv (+81-81)
  • (modified) libcxx/docs/Status/Cxx2cPapers.csv (+78-78)
  • (modified) libcxx/utils/synchronize_csv_status_files.py (+2-17)
diff --git a/libcxx/docs/Helpers/Styles.rst b/libcxx/docs/Helpers/Styles.rst
index 67560351d73439..b13d2c91ac323a 100644
--- a/libcxx/docs/Helpers/Styles.rst
+++ b/libcxx/docs/Helpers/Styles.rst
@@ -17,13 +17,6 @@
             font-style: italic;
          }
         .complete { background-color: #99FF99; }
-        .chrono { background-color: #D8BFD8; }
-        .format { background-color: #FFE4B5; }
-        .ranges { background-color: #7FFFD4; }
-        .spaceship { background-color: #B0E0E6; }
-        .fc { background-color: #8EAF63; white-space:nowrap; }
-        .concurrency { background-color: #909090; white-space:nowrap; }
-        .dr { background-color: #FFFF99; }
       </style>
 
 .. role:: notstarted
@@ -40,21 +33,5 @@
 .. |Partial| replace:: :partial:`Partial`
 .. |Complete| replace:: :complete:`Complete`
 
-.. role:: chrono
-.. role:: format
-.. role:: ranges
-.. role:: spaceship
-.. role:: fc
-.. role:: concurrency
-.. role:: dr
-
-.. |chrono| replace:: :chrono:`chrono`
-.. |format| replace:: :format:`format`
-.. |ranges| replace:: :ranges:`ranges`
-.. |spaceship| replace:: :spaceship:`spaceship`
-.. |flat_containers| replace:: :fc:`flat containers`
-.. |concurrency TS| replace:: :concurrency:`concurrency TS`
-.. |DR| replace:: :dr:`Defect Report`
-
 .. |sect| unicode:: U+00A7
 .. |hellip| unicode:: U+2026
diff --git a/libcxx/docs/Status/Cxx17Issues.csv b/libcxx/docs/Status/Cxx17Issues.csv
index 902a3717e5a388..efedd4b004f38e 100644
--- a/libcxx/docs/Status/Cxx17Issues.csv
+++ b/libcxx/docs/Status/Cxx17Issues.csv
@@ -1,314 +1,314 @@
-"Issue #","Issue Name","Meeting","Status","First released version","Labels"
-"`LWG2016 <https://wg21.link/LWG2016>`__","Allocators must be no-throw swappable","2014-11 (Urbana)","|Complete|","",""
-"`LWG2118 <https://wg21.link/LWG2118>`__","``unique_ptr``\  for array does not support cv qualification conversion of actual argument","2014-11 (Urbana)","|Complete|","",""
-"`LWG2170 <https://wg21.link/LWG2170>`__","Aggregates cannot be ``DefaultConstructible``\ ","2014-11 (Urbana)","|Complete|","",""
-"`LWG2340 <https://wg21.link/LWG2340>`__","Replacement allocation functions declared as inline","2014-11 (Urbana)","|Complete|","",""
-"`LWG2354 <https://wg21.link/LWG2354>`__","Unnecessary copying when inserting into maps with braced-init syntax","2014-11 (Urbana)","|Complete|","",""
-"`LWG2377 <https://wg21.link/LWG2377>`__","``std::align``\  requirements overly strict","2014-11 (Urbana)","|Complete|","",""
-"`LWG2396 <https://wg21.link/LWG2396>`__","``underlying_type``\  doesn't say what to do for an incomplete enumeration type","2014-11 (Urbana)","|Complete|","",""
-"`LWG2399 <https://wg21.link/LWG2399>`__","``shared_ptr``\ 's constructor from ``unique_ptr``\  should be constrained","2014-11 (Urbana)","|Complete|","",""
-"`LWG2400 <https://wg21.link/LWG2400>`__","``shared_ptr``\ 's ``get_deleter()``\  should use ``addressof()``\ ","2014-11 (Urbana)","|Complete|","",""
-"`LWG2401 <https://wg21.link/LWG2401>`__","``std::function``\  needs more noexcept","2014-11 (Urbana)","|Complete|","",""
-"`LWG2404 <https://wg21.link/LWG2404>`__","``mismatch()``\ 's complexity needs to be updated","2014-11 (Urbana)","|Complete|","",""
-"`LWG2408 <https://wg21.link/LWG2408>`__","SFINAE-friendly ``common_type``\  / ``iterator_traits``\  is missing in C++14","2014-11 (Urbana)","|Complete|","",""
-"`LWG2106 <https://wg21.link/LWG2106>`__","``move_iterator``\  wrapping iterators returning prvalues","2014-11 (Urbana)","|Complete|","",""
-"`LWG2129 <https://wg21.link/LWG2129>`__","User specializations of ``std::initializer_list``\ ","2014-11 (Urbana)","|Complete|","",""
-"`LWG2212 <https://wg21.link/LWG2212>`__","``tuple_size``\  for ``const pair``\  request <tuple> header","2014-11 (Urbana)","|Complete|","",""
-"`LWG2217 <https://wg21.link/LWG2217>`__","``operator==(sub_match, string)``\  slices on embedded '\0's","2014-11 (Urbana)","|Complete|","",""
-"`LWG2230 <https://wg21.link/LWG2230>`__","""see below"" for ``initializer_list``\  constructors of unordered containers","2014-11 (Urbana)","|Complete|","",""
-"`LWG2233 <https://wg21.link/LWG2233>`__","``bad_function_call::what()``\  unhelpful","2014-11 (Urbana)","|Complete|","",""
-"`LWG2266 <https://wg21.link/LWG2266>`__","``vector``\  and ``deque``\  have incorrect insert requirements","2014-11 (Urbana)","|Complete|","",""
-"`LWG2325 <https://wg21.link/LWG2325>`__","``minmax_element()``\ 's behavior differing from ``max_element()``\ 's should be noted","2014-11 (Urbana)","|Complete|","",""
-"`LWG2361 <https://wg21.link/LWG2361>`__","Apply 2299 resolution throughout library","2014-11 (Urbana)","|Complete|","",""
-"`LWG2365 <https://wg21.link/LWG2365>`__","Missing noexcept in ``shared_ptr::shared_ptr(nullptr_t)``\ ","2014-11 (Urbana)","|Complete|","",""
-"`LWG2376 <https://wg21.link/LWG2376>`__","``bad_weak_ptr::what()``\  overspecified","2014-11 (Urbana)","|Complete|","",""
-"`LWG2387 <https://wg21.link/LWG2387>`__","More nested types that must be accessible and unambiguous","2014-11 (Urbana)","|Complete|","",""
-"","","","","",""
-"`LWG2059 <https://wg21.link/LWG2059>`__","C++0x ambiguity problem with map::erase","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2063 <https://wg21.link/LWG2063>`__","Contradictory requirements for string move assignment","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2076 <https://wg21.link/LWG2076>`__","Bad CopyConstructible requirement in set constructors","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2160 <https://wg21.link/LWG2160>`__","Unintended destruction ordering-specification of resize","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2168 <https://wg21.link/LWG2168>`__","Inconsistent specification of uniform_real_distribution constructor","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2239 <https://wg21.link/LWG2239>`__","min/max/minmax requirements","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2364 <https://wg21.link/LWG2364>`__","deque and vector pop_back don't specify iterator invalidation requirements","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2369 <https://wg21.link/LWG2369>`__","constexpr max(initializer_list) vs max_element","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2378 <https://wg21.link/LWG2378>`__","Behaviour of standard exception types","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2403 <https://wg21.link/LWG2403>`__","stof() should call strtof() and wcstof()","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2406 <https://wg21.link/LWG2406>`__","negative_binomial_distribution should reject p == 1","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2407 <https://wg21.link/LWG2407>`__","packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicit","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2411 <https://wg21.link/LWG2411>`__","shared_ptr is only contextually convertible to bool","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2415 <https://wg21.link/LWG2415>`__","Inconsistency between unique_ptr and shared_ptr","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2420 <https://wg21.link/LWG2420>`__","function<void(ArgTypes...)> does not discard the return value of the target object","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2425 <https://wg21.link/LWG2425>`__","``operator delete(void*, size_t)``\  doesn't invalidate pointers sufficiently","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2427 <https://wg21.link/LWG2427>`__","Container adaptors as sequence containers, redux","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2428 <https://wg21.link/LWG2428>`__","""External declaration"" used without being defined","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2433 <https://wg21.link/LWG2433>`__","``uninitialized_copy()``\ /etc. should tolerate overloaded operator&","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2434 <https://wg21.link/LWG2434>`__","``shared_ptr::use_count()``\  is efficient","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2437 <https://wg21.link/LWG2437>`__","``iterator_traits::reference``\  can and can't be void","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2438 <https://wg21.link/LWG2438>`__","``std::iterator``\  inheritance shouldn't be mandated","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2439 <https://wg21.link/LWG2439>`__","``unique_copy()``\  sometimes can't fall back to reading its output","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2440 <https://wg21.link/LWG2440>`__","``seed_seq::size()``\  should be noexcept","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2442 <https://wg21.link/LWG2442>`__","``call_once()``\  shouldn't DECAY_COPY()","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2448 <https://wg21.link/LWG2448>`__","Non-normative Container destructor specification","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2454 <https://wg21.link/LWG2454>`__","Add ``raw_storage_iterator::base()``\  member","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2455 <https://wg21.link/LWG2455>`__","Allocator default construction should be allowed to throw","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2458 <https://wg21.link/LWG2458>`__","N3778 and new library deallocation signatures","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2459 <https://wg21.link/LWG2459>`__","``std::polar``\  should require a non-negative rho","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2464 <https://wg21.link/LWG2464>`__","``try_emplace``\  and ``insert_or_assign``\  misspecified","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2467 <https://wg21.link/LWG2467>`__","``is_always_equal``\  has slightly inconsistent default","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2470 <https://wg21.link/LWG2470>`__","Allocator's destroy function should be allowed to fail to instantiate","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2482 <https://wg21.link/LWG2482>`__","[c.strings] Table 73 mentions nonexistent functions","2015-05 (Lenexa)","|Complete|","",""
-"`LWG2488 <https://wg21.link/LWG2488>`__","Placeholders should be allowed and encouraged to be constexpr","2015-05 (Lenexa)","|Complete|","",""
-"","","","","",""
-"`LWG1169 <https://wg21.link/LWG1169>`__","``num_get``\  not fully compatible with ``strto*``\ ","2015-10 (Kona)","|Complete|","",""
-"`LWG2072 <https://wg21.link/LWG2072>`__","Unclear wording about capacity of temporary buffers","2015-10 (Kona)","|Complete|","",""
-"`LWG2101 <https://wg21.link/LWG2101>`__","Some transformation types can produce impossible types","2015-10 (Kona)","|Complete|","",""
-"`LWG2111 <https://wg21.link/LWG2111>`__","Which ``unexpected``\ &#47;``terminate``\  handler is called from the exception handling runtime?","2015-10 (Kona)","|Complete|","",""
-"`LWG2119 <https://wg21.link/LWG2119>`__","Missing ``hash``\  specializations for extended integer types","2015-10 (Kona)","|Complete|","",""
-"`LWG2127 <https://wg21.link/LWG2127>`__","Move-construction with ``raw_storage_iterator``\ ","2015-10 (Kona)","|Complete|","",""
-"`LWG2133 <https://wg21.link/LWG2133>`__","Attitude to overloaded comma for iterators","2015-10 (Kona)","|Complete|","",""
-"`LWG2156 <https://wg21.link/LWG2156>`__","Unordered containers' ``reserve(n)``\  reserves for ``n-1``\  elements","2015-10 (Kona)","|Complete|","",""
-"`LWG2218 <https://wg21.link/LWG2218>`__","Unclear how containers use ``allocator_traits::construct()``\ ","2015-10 (Kona)","|Complete|","",""
-"`LWG2219 <https://wg21.link/LWG2219>`__","``*INVOKE*``\ -ing a pointer to member with a ``reference_wrapper``\  as the object expression","2015-10 (Kona)","|Complete|","",""
-"`LWG2224 <https://wg21.link/LWG2224>`__","Ambiguous status of access to non-live objects","2015-10 (Kona)","|Complete|","",""
-"`LWG2234 <https://wg21.link/LWG2234>`__","``assert()``\  should allow usage in constant expressions","2015-10 (Kona)","|Complete|","",""
-"`LWG2244 <https://wg21.link/LWG2244>`__","Issue on ``basic_istream::seekg``\ ","2015-10 (Kona)","|Complete|","",""
-"`LWG2250 <https://wg21.link/LWG2250>`__","Follow-up On Library Issue 2207","2015-10 (Kona)","|Complete|","",""
-"`LWG2259 <https://wg21.link/LWG2259>`__","Issues in 17.6.5.5 rules for member functions","2015-10 (Kona)","|Complete|","",""
-"`LWG2273 <https://wg21.link/LWG2273>`__","``regex_match``\  ambiguity","2015-10 (Kona)","|Complete|","",""
-"`LWG2336 <https://wg21.link/LWG2336>`__","``is_trivially_constructible``\ /``is_trivially_assignable``\  traits are always false","2015-10 (Kona)","|Complete|","",""
-"`LWG2353 <https://wg21.link/LWG2353>`__","``std::next``\  is over-constrained","2015-10 (Kona)","|Complete|","",""
-"`LWG2367 <https://wg21.link/LWG2367>`__","``pair``\  and ``tuple``\  are not correctly implemented for ``is_constructible``\  with no args","2015-10 (Kona)","|Complete|","",""
-"`LWG2380 <https://wg21.link/LWG2380>`__","May ``<cstdlib>``\  provide ``long ::abs(long)``\  and ``long long ::abs(long long)``\ ?","2015-10 (Kona)","|Complete|","",""
-"`LWG2384 <https://wg21.link/LWG2384>`__","Allocator's ``deallocate``\  function needs better specification","2015-10 (Kona)","|Complete|","",""
-"`LWG2385 <https://wg21.link/LWG2385>`__","``function::assign``\  allocator argument doesn't make sense","2015-10 (Kona)","|Complete|","",""
-"`LWG2435 <https://wg21.link/LWG2435>`__","``reference_wrapper::operator()``\ 's Remark should be deleted","2015-10 (Kona)","|Complete|","",""
-"`LWG2447 <https://wg21.link/LWG2447>`__","Allocators and ``volatile``\ -qualified value types","2015-10 (Kona)","|Complete|","",""
-"`LWG2462 <https://wg21.link/LWG2462>`__","``std::ios_base::failure``\  is overspecified","2015-10 (Kona)","|Complete|","",""
-"`LWG2466 <https://wg21.link/LWG2466>`__","``allocator_traits::max_size()``\  default behavior is incorrect","2015-10 (Kona)","|Complete|","",""
-"`LWG2469 <https://wg21.link/LWG2469>`__","Wrong specification of Requires clause of ``operator[]``\  for ``map``\  and ``unordered_map``\ ","2015-10 (Kona)","|Complete|","",""
-"`LWG2473 <https://wg21.link/LWG2473>`__","``basic_filebuf``\ 's relation to C ``FILE``\  semantics","2015-10 (Kona)","|Complete|","",""
-"`LWG2476 <https://wg21.link/LWG2476>`__","``scoped_allocator_adaptor``\  is not assignable","2015-10 (Kona)","|Complete|","",""
-"`LWG2477 <https://wg21.link/LWG2477>`__","Inconsistency of wordings in ``std::vector::erase()``\  and ``std::deque::erase()``\ ","2015-10 (Kona)","|Complete|","",""
-"`LWG2483 <https://wg21.link/LWG2483>`__","``throw_with_nested()``\  should use ``is_final``\ ","2015-10 (Kona)","|Complete|","",""
-"`LWG2484 <https://wg21.link/LWG2484>`__","``rethrow_if_nested()``\  is doubly unimplementable","2015-10 (Kona)","|Complete|","",""
-"`LWG2485 <https://wg21.link/LWG2485>`__","``get()``\  should be overloaded for ``const tuple&&``\ ","2015-10 (Kona)","|Complete|","",""
-"`LWG2486 <https://wg21.link/LWG2486>`__","``mem_fn()``\  should be required to use perfect forwarding","2015-10 (Kona)","|Complete|","",""
-"`LWG2487 <https://wg21.link/LWG2487>`__","``bind()``\  should be ``const``\ -overloaded, not *cv*-overloaded","2015-10 (Kona)","|Complete|","",""
-"`LWG2489 <https://wg21.link/LWG2489>`__","``mem_fn()``\  should be ``noexcept``\ ","2015-10 (Kona)","|Complete|","",""
-"`LWG2492 <https://wg21.link/LWG2492>`__","Clarify requirements for ``comp``\ ","2015-10 (Kona)","|Complete|","",""
-"`LWG2495 <https://wg21.link/LWG2495>`__","There is no such thing as an Exception Safety element","2015-10 (Kona)","|Complete|","",""
-"","","","","",""
-"`LWG2192 <https://wg21.link/LWG2192>`__","Validity and return type of ``std::abs(0u)``\  is unclear","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2276 <https://wg21.link/LWG2276>`__","Missing requirement on ``std::promise::set_exception``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2296 <https://wg21.link/LWG2296>`__","``std::addressof``\  should be ``constexpr``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2450 <https://wg21.link/LWG2450>`__","``(greater|less|greater_equal|less_equal)<void>``\  do not yield a total order for pointers","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2520 <https://wg21.link/LWG2520>`__","N4089 broke initializing ``unique_ptr<T[]>``\  from a ``nullptr``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2522 <https://wg21.link/LWG2522>`__","[fund.ts.v2] Contradiction in ``set_default_resource``\  specification","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2523 <https://wg21.link/LWG2523>`__","``std::promise``\  synopsis shows two ``set_value_at_thread_exit()``\ 's for no apparent reason","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2537 <https://wg21.link/LWG2537>`__","Constructors for ``priority_queue``\  taking allocators should call ``make_heap``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2539 <https://wg21.link/LWG2539>`__","[fund.ts.v2] ``invocation_trait``\  definition definition doesn't work for surrogate call functions","2016-02 (Jacksonville)","","",""
-"`LWG2545 <https://wg21.link/LWG2545>`__","Simplify wording for ``bind``\  without explicitly specified return type","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2557 <https://wg21.link/LWG2557>`__","Logical operator traits are broken in the zero-argument case","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2558 <https://wg21.link/LWG2558>`__","[fund.ts.v2] Logical operator traits are broken in the zero-argument case","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2559 <https://wg21.link/LWG2559>`__","Error in LWG 2234's resolution","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2560 <https://wg21.link/LWG2560>`__","``is_constructible``\  underspecified when applied to a function type","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2565 <https://wg21.link/LWG2565>`__","``std::function``\ 's move constructor should guarantee nothrow for ``reference_wrapper``\ s and function pointers","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2566 <https://wg21.link/LWG2566>`__","Requirements on the first template parameter of container adaptors","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2571 <https://wg21.link/LWG2571>`__","|sect|\ [map.modifiers]/2 imposes nonsensical requirement on ``insert(InputIterator, InputIterator)``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2572 <https://wg21.link/LWG2572>`__","The remarks for ``shared_ptr::operator*``\  should apply to *cv*-qualified ``void``\  as well","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2574 <https://wg21.link/LWG2574>`__","[fund.ts.v2] ``std::experimental::function::operator=(F&&)``\  should be constrained","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2575 <https://wg21.link/LWG2575>`__","[fund.ts.v2] ``experimental::function::assign``\  should be removed","2016-02 (Jacksonville)","","",""
-"`LWG2576 <https://wg21.link/LWG2576>`__","``istream_iterator``\  and ``ostream_iterator``\  should use ``std::addressof``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2577 <https://wg21.link/LWG2577>`__","``{shared,unique}_lock``\  should use ``std::addressof``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2579 <https://wg21.link/LWG2579>`__","Inconsistency wrt Allocators in ``basic_string``\  assignment vs. ``basic_string::assign``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2581 <https://wg21.link/LWG2581>`__","Specialization of ``<type_traits>``\  variable templates should be prohibited","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2582 <https://wg21.link/LWG2582>`__","|sect|\ [res.on.functions]/2's prohibition against incomplete types shouldn't apply to type traits","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2583 <https://wg21.link/LWG2583>`__","There is no way to supply an allocator for ``basic_string(str, pos)``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2585 <https://wg21.link/LWG2585>`__","``forward_list::resize(size_type, const value_type&)``\  effects incorrect","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2586 <https://wg21.link/LWG2586>`__","Wrong value category used in ``scoped_allocator_adaptor::construct()``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"`LWG2590 <https://wg21.link/LWG2590>`__","Aggregate initialization for ``std::array``\ ","2016-02 (Jacksonville)","|Complete|","",""
-"","","","","",""
-"`LWG2181 <https://wg21.link/LWG2181>`__","Exceptions from seed sequence operations","2016-06 (Oulu)","|Complete|","",""
-"`LWG2309 <https://wg21.link/LWG2309>`__","mutex::lock() should not throw device_or_resource_busy","2016-06 (Oulu)","|Complete|","",""
-"`LWG2310 <https://wg21.link/LWG2310>`__","Public exposition only member in std::array","2016-06 (Oulu)","|Complete|","",""
-"`LWG2312 <ht...
[truncated]

"`P2867R2 <https://wg21.link/P2867R2>`__","Remove Deprecated ``strstreams`` From C++26","2024-03 (Tokyo)","|Complete|","19.0",""
"`P2869R4 <https://wg21.link/P2869R4>`__","Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26","2024-03 (Tokyo)","","",""
"`P2872R3 <https://wg21.link/P2872R3>`__","Remove ``wstring_convert`` From C++26","2024-03 (Tokyo)","|Complete|","19.0",""
"`P3107R5 <https://wg21.link/P3107R5>`__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","","|format| |DR|"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we want to retain a way to annotate things in the CSV as being DRs, though.

Copy link

⚠️ Python code formatter, darker found issues in your code. ⚠️

You can test this locally with the following command:
darker --check --diff -r 84fa7b438e1fba0c88b21784e716926017b9fe49...c2f3d76655c0934b7727b76016c248465f55c133 libcxx/utils/synchronize_csv_status_files.py
View the diff from darker here.
--- synchronize_csv_status_files.py	2024-08-21 20:39:46.000000 +0000
+++ synchronize_csv_status_files.py	2024-08-21 20:47:19.480372 +0000
@@ -169,11 +169,11 @@
 
     def __repr__(self) -> str:
         return repr(self.original) if self.original is not None else repr(self.for_printing())
 
     @staticmethod
-    def from_csv_row(row: Tuple[str, str, str, str, str]):# -> PaperInfo:
+    def from_csv_row(row: Tuple[str, str, str, str, str]):  # -> PaperInfo:
         """
         Given a row from one of our status-tracking CSV files, create a PaperInfo object representing that row.
         """
         # Extract the paper number from the first column
         match = re.search(r"((P[0-9R]+)|(LWG[0-9]+)|(N[0-9]+))\s+", row[0])

This patch replaces 'tags' in the CSV status pages by inline notes
that optionally describe more details about the paper/LWG issue.

Tags were not really useful anymore because we have a vastly superior
tagging system via Github issues, and keeping the tags up-to-date
between CSV files and Github is going to be really challenging.

This patch also adds support for encoding custom notes in the CSV
files via Github issues. To encode a note in the CSV file, the
body (initial description) of a Github issue can be edited to contain
the following markers:

    BEGIN-RST-NOTES
    text that will be added as a note in the RST
    END-RST-NOTES
This reverts commit 643bb829d1b476cae02928f9a7c2d16171a3e127.
@ldionne ldionne force-pushed the review/remove-labels-from-status-pages branch from c2f3d76 to be387cd Compare August 28, 2024 17:39
@ldionne ldionne changed the title [libc++] Remove labels from CSV status pages [libc++] Replace 'tags' in CSV status pages by inline notes Aug 28, 2024
@ldionne
Copy link
Member Author

ldionne commented Aug 28, 2024

I tested this locally and verified that the output was reasonable. I'm going to merge this without waiting because of the massive potential for merge conflicts, and resolving such conflicts would be very challenging from this side.

@ldionne ldionne merged commit c2cac69 into llvm:main Aug 28, 2024
5 of 11 checks passed
@ldionne ldionne deleted the review/remove-labels-from-status-pages branch August 28, 2024 17:42
5c4lar pushed a commit to 5c4lar/llvm-project that referenced this pull request Aug 29, 2024
)

This patch replaces 'tags' in the CSV status pages by inline notes
that optionally describe more details about the paper/LWG issue.

Tags were not really useful anymore because we have a vastly superior
tagging system via Github issues, and keeping the tags up-to-date
between CSV files and Github is going to be really challenging.

This patch also adds support for encoding custom notes in the CSV
files via Github issues. To encode a note in the CSV file, the
body (initial description) of a Github issue can be edited to contain
the following markers:

    BEGIN-RST-NOTES
    text that will be added as a note in the RST
    END-RST-NOTES

Amongst other things, this solves the problem of conveying that a
paper has been implemented as a DR, and it gives a unified way to
add notes to the status pages from Github.
@philnik777
Copy link
Contributor

I have to say that IMO this significantly decreased the readability of the status pages. Most of the page is just white space now and the paper names are super squished and almost always in multiple lines.

@ldionne
Copy link
Member Author

ldionne commented Sep 9, 2024

@philnik777 I agree. I think the output can be much improved, for example we could probably generate a tooltip instead. I'll look into that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants