Skip to content

Conversation

@frederick-vs-ja
Copy link
Contributor

@frederick-vs-ja frederick-vs-ja commented Nov 29, 2024

LWG issue list from https://wg21.link/P3504R0.

Some are already implemented. The status will be set in another PR.

  • LWG4084 and LWG4140 were already implemented at the initial commit.
  • LWG3216 should have been implemented together with LWG3870 in 19c6958.
  • LWG4024 was implemented together with P1020R1 + P1973R1 in 9af9d39.
  • LWG4124 was implemented when initially implementing zoned_time formatters in afbfb16.
  • LWG4141 can be considered implemented together with P0323R12 in e356f68.
  • LWG4157 was implemented together with P2167R3 in 557f7e1.

Some are possibly implemented.

  • LWG4154 was possibly implemented at the initial commit. Check needed.

Some seem nothing to do, but need additional check.

  • It seems that LWG4064 and LWG4144 should be handled by compiler frontends.
  • LWG4170 seems to only strengthen requirement on user codes, but we need to ensure that we don't provide any non-conforming contiguous iterator.

@frederick-vs-ja frederick-vs-ja requested a review from a team as a code owner November 29, 2024 17:32
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Nov 29, 2024
@llvmbot
Copy link
Member

llvmbot commented Nov 29, 2024

@llvm/pr-subscribers-libcxx

Author: A. Jiang (frederick-vs-ja)

Changes

From https://wg21.link/P3504R0.

Some are already implemented.

  • LWG4084 and LWG4140 were already implemented at the initial commit.
  • LWG3216 should have been implemented together with LWG3810 in 19c6958.
  • LWG4024 was implemented together with P1020R1 + P1973R1 in 9af9d39.
  • LWG4124 was implemented when initially implementing zoned_time formatters in afbfb16.
  • LWG4141 can be considered implemented together with P0323R12 in e356f68.
  • LWG4157 was implemented together with P2167R3 in 557f7e1.

Some are possibly implemented.

  • LWG4154 was possibly implemented at the initial commit. Check needed.

Some seem nothing to do, but need additional check.

  • It seems that LWG4064 and LWG4144 should be handled by compiler frontends.
  • LWG4170 seems to only strengthen requirement on user codes, but we need to ensure that we don't provide any non-conforming contiguous iterator.

Full diff: https://github.com/llvm/llvm-project/pull/118116.diff

1 Files Affected:

  • (modified) libcxx/docs/Status/Cxx2cIssues.csv (+35)
diff --git a/libcxx/docs/Status/Cxx2cIssues.csv b/libcxx/docs/Status/Cxx2cIssues.csv
index a0d2ccdc34d08d..6af71430f80d80 100644
--- a/libcxx/docs/Status/Cxx2cIssues.csv
+++ b/libcxx/docs/Status/Cxx2cIssues.csv
@@ -62,6 +62,41 @@
 "`LWG4053 <https://wg21.link/LWG4053>`__","Unary call to ``std::views::repeat`` does not decay the argument","2024-03 (Tokyo)","|Complete|","19",""
 "`LWG4054 <https://wg21.link/LWG4054>`__","Repeating a ``repeat_view`` should repeat the view","2024-03 (Tokyo)","|Complete|","19",""
 "","","","","",""
+"`LWG3216 <https://wg21.link/LWG3216>`__","Rebinding the allocator before calling ``construct``/``destroy`` in ``allocate_shared``","2024-11 (Wrocław)","|Complete|","20",""
+"`LWG3436 <https://wg21.link/LWG3436>`__","``std::construct_at`` should support arrays","2024-11 (Wrocław)","","",""
+"`LWG3886 <https://wg21.link/LWG3886>`__","Monad mo' problems","2024-11 (Wrocław)","","",""
+"`LWG3899 <https://wg21.link/LWG3899>`__","``co_yield``\ing elements of an lvalue generator is unnecessarily inefficient","2024-11 (Wrocław)","","",""
+"`LWG3900 <https://wg21.link/LWG3900>`__","The ``allocator_arg_t`` overloads of ``generator::promise_type::operator new`` should not be constrained","2024-11 (Wrocław)","","",""
+"`LWG3918 <https://wg21.link/LWG3918>`__","``std::uninitialized_move/_n`` and guaranteed copy elision","2024-11 (Wrocław)","","",""
+"`LWG4014 <https://wg21.link/LWG4014>`__","LWG 3809 changes behavior of some existing ``std::subtract_with_carry_engine code``","2024-11 (Wrocław)","","",""
+"`LWG4024 <https://wg21.link/LWG4024>`__","Underspecified destruction of objects created in ``std::make_shared_for_overwrite``/``std::allocate_shared_for_overwrite``","2024-11 (Wrocław)","|Complete|","16",""
+"`LWG4027 <https://wg21.link/LWG4027>`__","``possibly-const-range`` should prefer returning ``const R&``","2024-11 (Wrocław)","","",""
+"`LWG4044 <https://wg21.link/LWG4044>`__","Confusing requirements for ``std::print`` on POSIX platforms","2024-11 (Wrocław)","","",""
+"`LWG4064 <https://wg21.link/LWG4064>`__","Clarify that ``std::launder`` is not needed when using the result of ``std::memcpy``","2024-11 (Wrocław)","","",""
+"`LWG4072 <https://wg21.link/LWG4072>`__","``std::optional`` comparisons: constrain harder","2024-11 (Wrocław)","","",""
+"`LWG4084 <https://wg21.link/LWG4084>`__","``std::fixed`` ignores ``std::uppercase``","2024-11 (Wrocław)","|Complete|","",""
+"`LWG4085 <https://wg21.link/LWG4085>`__","``ranges::generate_random``'s helper lambda should specify the return type","2024-11 (Wrocław)","","",""
+"`LWG4088 <https://wg21.link/LWG4088>`__","``println`` ignores the locale imbued in ``std::ostream"``,"2024-11 (Wrocław)","","",""
+"`LWG4112 <https://wg21.link/LWG4112>`__","``has-arrow`` should required ``operator->()`` to be ``const``-qualified","2024-11 (Wrocław)","","",""
+"`LWG4113 <https://wg21.link/LWG4113>`__","Disallow ``has_unique_object_representations<Incomplete[]>``","2024-11 (Wrocław)","","",""
+"`LWG4119 <https://wg21.link/LWG4119>`__","``generator::promise_type::yield_value(ranges::elements_of<R, Alloc>)``'s nested ``generator`` may be ill-formed","2024-11 (Wrocław)","","",""
+"`LWG4124 <https://wg21.link/LWG4124>`__","Cannot format ``zoned_time`` with resolution coarser than ``seconds``","2024-11 (Wrocław)","|Complete|","19",""
+"`LWG4126 <https://wg21.link/LWG4126>`__","Some feature-test macros for fully freestanding features are not yet marked freestanding","2024-11 (Wrocław)","","",""
+"`LWG4134 <https://wg21.link/LWG4134>`__","Issue with Philox algorithm specification","2024-11 (Wrocław)","","",""
+"`LWG4135 <https://wg21.link/LWG4135>`__","The helper lambda of ``std::erase`` for list should specify return type as ``bool``","2024-11 (Wrocław)","","",""
+"`LWG4140 <https://wg21.link/LWG4140>`__","Useless default constructors for bit reference types","2024-11 (Wrocław)","|Complete|","",""
+"`LWG4141 <https://wg21.link/LWG4141>`__","Improve prohibitions on "additional storage"","2024-11 (Wrocław)","|Complete|","16",""
+"`LWG4142 <https://wg21.link/LWG4142>`__","``format_parse_context::check_dynamic_spec`` should require at least one type","2024-11 (Wrocław)","","",""
+"`LWG4144 <https://wg21.link/LWG4144>`__","Disallow ``unique_ptr<T&, D>``","2024-11 (Wrocław)","","",""
+"`LWG4147 <https://wg21.link/LWG4147>`__","Precondition on ``inplace_vector::emplace``","2024-11 (Wrocław)","","",""
+"`LWG4148 <https://wg21.link/LWG4148>`__","``unique_ptr::operator*`` should not allow dangling references","2024-11 (Wrocław)","","",""
+"`LWG4153 <https://wg21.link/LWG4153>`__","Fix extra "-1" for ``philox_engine::max()``","2024-11 (Wrocław)","","",""
+"`LWG4154 <https://wg21.link/LWG4154>`__","The Mandates for ``std::packaged_task``'s constructor from a callable entity should consider decaying","2024-11 (Wrocław)","","",""
+"`LWG4157 <https://wg21.link/LWG4157>`__","The resolution of LWG3465 was damaged by P2167R3","2024-11 (Wrocław)","|Complete|","20",""
+"`LWG4164 <https://wg21.link/LWG4164>`__","Missing guarantees for ``forward_list`` modifiers","2024-11 (Wrocław)","","",""
+"`LWG4169 <https://wg21.link/LWG4169>`__","``std::atomic<T>``'s default constructor should be constrained","2024-11 (Wrocław)","","",""
+"`LWG4170 <https://wg21.link/LWG4170>`__","``contiguous_iterator`` should require ``to_address(I{})``","2024-11 (Wrocław)","","",""
+"","","","","",""
 "`LWG3944 <https://wg21.link/LWG3944>`__","Formatters converting sequences of ``char`` to sequences of ``wchar_t``","2024-06 (St. Louis)","","",""
 "`LWG4060 <https://wg21.link/LWG4060>`__","``submdspan`` preconditions do not forbid creating invalid pointer","2024-06 (St. Louis)","","",""
 "`LWG4061 <https://wg21.link/LWG4061>`__","Should ``std::basic_format_context`` be default-constructible/copyable/movable?","2024-06 (St. Louis)","|Complete|","19",""

@frederick-vs-ja frederick-vs-ja force-pushed the lwg-issues-202411 branch 3 times, most recently from e73be30 to 538007b Compare November 29, 2024 17:49
@ldionne
Copy link
Member

ldionne commented Nov 29, 2024

Can you also add those to the C++26 papers?

"`P3136R1 <https://wg21.link/P3136R1>`__","Retiring niebloids","2024-11 (Wrocław)","","",""
"`P3138R5 <https://wg21.link/P3138R5>`__","views::cache_latest","2024-11 (Wrocław)","","",""
"`P3379R0 <https://wg21.link/P3379R0>`__","Constrain std::expected equality operators","2024-11 (Wrocław)","","",""
"`P0472R2 <https://wg21.link/P0472R2>`__","Put std::monostate in utility","2024-11 (Wrocław)","","",""
"`P2862R1 <https://wg21.link/P2862R1>`__","text_encoding::name() should never return null values","2024-11 (Wrocław)","","",""
"`P2897R7 <https://wg21.link/P2897R7>`__","aligned_accessor: An mdspan accessor expressing pointer over-alignment","2024-11 (Wrocław)","","",""
"`P3355R1 <https://wg21.link/P3355R1>`__","Fix submdspan for C++26","2024-11 (Wrocław)","","",""
"`P3222R0 <https://wg21.link/P3222R0>`__","Fix C++26 by adding transposed special cases for P2642 layouts","2024-11 (Wrocław)","","",""
"`P3050R2 <https://wg21.link/P3050R2>`__","Fix C++26 by optimizing linalg::conjugated for noncomplex value types","2024-11 (Wrocław)","","",""
"`P3396R1 <https://wg21.link/P3396R1>`__","std::execution wording fixes","2024-11 (Wrocław)","","",""
"`P2835R7 <https://wg21.link/P2835R7>`__","Expose std::atomic_ref's object address","2024-11 (Wrocław)","","",""
"`P3323R1 <https://wg21.link/P3323R1>`__","cv-qualified types in atomic and atomic_ref","2024-11 (Wrocław)","","",""
"`P3508R0 <https://wg21.link/P3508R0>`__","Wording for constexpr for specialized memory algorithms","2024-11 (Wrocław)","","",""
"`P3369R0 <https://wg21.link/P3369R0>`__","constexpr for uninitialized_default_construct","2024-11 (Wrocław)","","",""
"`P3370R1 <https://wg21.link/P3370R1>`__","Add new library headers from C23","2024-11 (Wrocław)","","",""
"`P3309R3 <https://wg21.link/P3309R3>`__","constexpr atomic and atomic_ref","2024-11 (Wrocław)","","",""
"`P3019R11 <https://wg21.link/P3019R11>`__","indirect and polymorphic: Vocabulary Types for Composite Class Design","2024-11 (Wrocław)","","",""
"`P1928R15 <https://wg21.link/P1928R15>`__","std::simd — merge data-parallel types from the Parallelism TS 2","2024-11 (Wrocław)","","",""
"`P3325R5 <https://wg21.link/P3325R5>`__","A Utility for Creating Execution Environments","2024-11 (Wrocław)","","",""
"","","","","",""

(perhaps worth double-checking them)

@ldionne
Copy link
Member

ldionne commented Nov 29, 2024

Also, would it be possible to defer to another patch before marking anything as complete? I am experimenting with the workflow to create the corresponding Github issues and I think it's easier if we first create them, and then mark them as implemented when relevant.

@frederick-vs-ja
Copy link
Contributor Author

Can you also add those to the C++26 papers?

I'll do so. Moreover, P3068R6 and P3247R2 also need library changes.

@frederick-vs-ja frederick-vs-ja changed the title [libc++][docs] Add 2024-11 LWG issue list [libc++][docs] Add 2024-11 LWG papers, LWG issues, and CWG papers needing library changes to the lists Nov 30, 2024
@frederick-vs-ja frederick-vs-ja changed the title [libc++][docs] Add 2024-11 LWG papers, LWG issues, and CWG papers needing library changes to the lists [libc++][docs] Add 2024-11 LWG papers/issues and CWG papers needing library changes to the lists Nov 30, 2024
Copy link
Member

@ldionne ldionne left a comment

Choose a reason for hiding this comment

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

LGTM with minor nits. Thanks a lot! I'll create the Github issues momentarily.

@ldionne ldionne merged commit c295098 into llvm:main Dec 2, 2024
11 of 13 checks passed
@frederick-vs-ja frederick-vs-ja deleted the lwg-issues-202411 branch December 3, 2024 01:06
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