Skip to content

[libc++] Add missing release note for LLVM 20 about zip_view #134144

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

Merged
merged 1 commit into from
Apr 3, 2025

Conversation

ldionne
Copy link
Member

@ldionne ldionne commented Apr 2, 2025

We should have had a release note in LLVM 20 about implementing P2165R4 since that is technically an ABI and API break for zip_view. We don't expect anyone to actually hit the ABI issue, but we've come across some (fairly small) breakage due to the API change, so this should at least be mentioned in the release notes.

We should have had a release note in LLVM 20 about implementing
P2165R4 since that is technically an ABI and API break for zip_view.
We don't expect anyone to actually hit the ABI issue, but we've come
across some (fairly small) breakage due to the API change, so this
should at least be mentioned in the release notes.
@ldionne ldionne requested a review from a team as a code owner April 2, 2025 19:36
@ldionne ldionne added this to the LLVM 20.X Release milestone Apr 2, 2025
@github-project-automation github-project-automation bot moved this to Needs Triage in LLVM Release Status Apr 2, 2025
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Apr 2, 2025
@ldionne
Copy link
Member Author

ldionne commented Apr 2, 2025

CC @cor3ntin @frederick-vs-ja

@llvmbot
Copy link
Member

llvmbot commented Apr 2, 2025

@llvm/pr-subscribers-libcxx

Author: Louis Dionne (ldionne)

Changes

We should have had a release note in LLVM 20 about implementing P2165R4 since that is technically an ABI and API break for zip_view. We don't expect anyone to actually hit the ABI issue, but we've come across some (fairly small) breakage due to the API change, so this should at least be mentioned in the release notes.


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

1 Files Affected:

  • (modified) libcxx/docs/ReleaseNotes/20.rst (+11)
diff --git a/libcxx/docs/ReleaseNotes/20.rst b/libcxx/docs/ReleaseNotes/20.rst
index 57ab0c167544b..06e6e673b5508 100644
--- a/libcxx/docs/ReleaseNotes/20.rst
+++ b/libcxx/docs/ReleaseNotes/20.rst
@@ -162,6 +162,12 @@ Deprecations and Removals
 
 - Non-conforming extension ``packaged_task::result_type`` is deprecated. It will be removed in LLVM 21.
 
+- The changes for ``ranges::zip_view`` from `P2165R4 <https://wg21.link/P2165R4>`_ have been implemented. This can
+  lead to code assuming that ``zip_view`` produces ``std::pair`` to stop compiling now that it produces ``std::tuple``.
+  The cases are rare since ``tuple`` and ``pair`` are compatible for the most part, but this can lead to code that
+  was previously accepted now being rejected. This is necessary for libc++ to be conforming, so we don't provide any
+  way to opt-out of that behavior.
+
 Upcoming Deprecations and Removals
 ----------------------------------
 
@@ -205,3 +211,8 @@ ABI Affecting Changes
 
 - The localization support base API has been reimplemented, leading to different functions being exported from the
   libc++ built library on Windows and Windows-like platforms.
+
+- The changes for ``ranges::zip_view`` from `P2165R4 <https://wg21.link/P2165R4>`_ have been implemented. This changes
+  the element type of ``zip_view`` from a ``std::pair`` to a ``std::tuple`` in some cases. This is technically an ABI
+  break, however since ``zip_view`` is generally not an ABI sensitive type, we don't expect users to encounter any
+  issues and we don't provide a way to change this behavior, which would make libc++ non-conforming.

@github-project-automation github-project-automation bot moved this from Needs Triage to Needs Merge in LLVM Release Status Apr 2, 2025
@ldionne ldionne merged commit 2cd8edd into llvm:main Apr 3, 2025
83 checks passed
@github-project-automation github-project-automation bot moved this from Needs Merge to Done in LLVM Release Status Apr 3, 2025
@ldionne ldionne deleted the review/release-note-for-zip-view branch April 3, 2025 22:34
@ldionne
Copy link
Member Author

ldionne commented Apr 3, 2025

/cherry-pick 2cd8edd

@llvmbot
Copy link
Member

llvmbot commented Apr 3, 2025

/pull-request #134313

swift-ci pushed a commit to swiftlang/llvm-project that referenced this pull request Apr 11, 2025
…4144)

We should have had a release note in LLVM 20 about implementing P2165R4
since that is technically an ABI and API break for zip_view. We don't
expect anyone to actually hit the ABI issue, but we've come across some
(fairly small) breakage due to the API change, so this should at least
be mentioned in the release notes.

(cherry picked from commit 2cd8edd)
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
Development

Successfully merging this pull request may close these issues.

4 participants