Skip to content

[6.0] stdlib: Fix more typed throws and non-copyable generics condfails #73307

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

Conversation

tshortli
Copy link
Contributor

@tshortli tshortli commented Apr 26, 2024

  • Explanation: Backward compatibility of the stdlib .swiftinterface has been broken by recent changes ([stdlib] Round out ~Copyable generalizations in stdlib primitives #73045).
  • Scope: Prevents the stdlib module from building in important developer workflows.
  • Issue/Radar: rdar://127132742
  • Original PR: stdlib: Fix more typed throws and non-copyable generics condfails #73306
  • Risk: Low. The main risk would be an ABI break if the compatibility symbol names were wrong. I used the stdlib's ABI stability tests to verify that stability has been preserved, though.
  • Testing: Existing tests verify ABI stability of this change. I verified manually that the stdlib's interface is buildable with specific older compilers that need compatibility.
  • Reviewer:

There were two categories of problem for older compilers that consume the
stdlib `.swiftinterface`:

- The `case .some(borrowing x)` syntax isn't accepted; use `_borrowing`
- Various functions that addopted `~Copyable` generic constraints conflict with
  the `@usableFromInline` ABI stubs that were left in to preserve compatibility
  when the functions are printed with `~Copyable` constraints stripped. The stubs
  need to have different names to get out of the way.

Resolves rdar://127132742
@tshortli tshortli requested a review from a team as a code owner April 26, 2024 23:40
@tshortli
Copy link
Contributor Author

@swift-ci please test

@tshortli tshortli added 🍒 release cherry pick Flag: Release branch cherry picks swift 6.0 labels Apr 27, 2024
@tshortli tshortli requested a review from nkcsgexi April 27, 2024 00:16
@tshortli tshortli enabled auto-merge April 27, 2024 01:24
@tshortli tshortli merged commit dbfd4c3 into swiftlang:release/6.0 Apr 27, 2024
@tshortli tshortli deleted the the-condfails-never-end-6.0 branch April 27, 2024 23:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🍒 release cherry pick Flag: Release branch cherry picks swift 6.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants