Skip to content

Conversation

@DougGregor
Copy link
Member

@DougGregor DougGregor commented Sep 25, 2024

  • Explanation: When compiling with library evolution and a pre-Swift 6.0 deployment target, a mismatch between the notion of resilience used for determining whether a protocol that inherits Sendable might need to be treated as "dependent" differed from how other parts of IR generation decided whether to conformance should be considered as resilient. The difference came when both the protocol and its conforming type are in the same module as the user. Switch over to the "is this conformance resilient?" query that takes into account such conformances.
  • Scope: Affects binaries that use conformances of Sendable-conforming protocols, use library evolution, and are buil for deployment targets that predate Swift 6.0.
  • Issues: rdar://136586922
  • Original PRs: Use "resilient conformance" logic for deciding protocol dependencies involving Sendable #76707
  • Risk: Low. This is further narrowing from [6.0.1] Fix ABI mismatch involving Sendable-refining non-resilient protocols and deployment targets #76384.
  • Testing: Tested against an affected project, plus new tests
  • Reviewer: @aschwaighofer

…involving Sendable

When compiling with library evolution and a pre-Swift 6.0 deployment
target, a mismatch between the notion of resilience used for determining
whether a protocol that inherits Sendable might need to be treated as
"dependent" differed from how other parts of IR generation decided
whether to conformance should be considered as resilient. The
difference came when both the protocol and its conforming type are in
the same module as the user.

Switch over to the "is this conformance resilient?" query that takes
into account such conformances.

Fixes rdar://136586922.
@DougGregor DougGregor requested a review from a team as a code owner September 25, 2024 19:11
@DougGregor
Copy link
Member Author

@swift-ci please test

@DougGregor DougGregor merged commit 506b3f8 into swiftlang:release/6.0 Sep 26, 2024
@DougGregor DougGregor deleted the sendable-conformance-evolution-old-deployment-6.0 branch September 26, 2024 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants