Skip to content

Stage the swift_continuation_await ABI change #38528

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
Jul 21, 2021

Conversation

rjmccall
Copy link
Contributor

Introduce a fake (but non-ABI) declaration to the swiftinterface which marks that an SDK support swift_continuation_await, and then only call it if that declaration exists, otherwise falling back on the old atomic sequence. Using that sequence will badly mess up the runtime's tracking of task state, but it might still work, and more importantly things will still build, which solves the short-term problem. Hopefully we can remove this hack soon.

Fixes rdar://problem/80787731.

My testing of this involved manually editing the swiftinterface and deleting the swiftmodule; I can't think of a reasonable way to test it automatically.

Introduce a fake (but non-ABI) declaration to the swiftinterface
which marks that an SDK support swift_continuation_await, and then
only call it if that declaration exists, otherwise falling back
on the old atomic sequence.  Using that sequence will badly mess
up the runtime's tracking of task state, but it might still work,
and more importantly things will still build, which solves the
short-term problem.  Hopefully we can remove this hack soon.

Fixes rdar://problem/80787731.
@rjmccall
Copy link
Contributor Author

@swift-ci Please test

Copy link
Member

@DougGregor DougGregor left a comment

Choose a reason for hiding this comment

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

It's terrible...ly effective. I love it! And I hate it!

@DougGregor DougGregor merged commit e12a81a into swiftlang:main Jul 21, 2021
@rjmccall rjmccall deleted the stage-continuation-await branch July 21, 2021 17:01
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