Skip to content
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

Make expect+async and AsyncExpression conform to Sendable #1067

Merged
merged 2 commits into from
Jul 29, 2023

Conversation

younata
Copy link
Member

@younata younata commented Jul 28, 2023

One of the goals of Nimble 13 is to enable strict concurrency checking, in preparation for Swift 6 (ideally, we want to be able to support Swift 6 long before it actually ships).

This is one small part of that effort. Specifically, this is doing the least amount of work to make AsyncExpression and expect/expecta (with async closures) conform to Sendable.

This...

  • Makes AsyncExpression conform to Sendable.
  • Makes SourceLocation conform to Sendable.
  • Changes AsyncExpression to take in/operate only on Sendable closures. Which drove out making expect (for async)/expecta take in only Sendable closures.
  • rewrites memoizedClosure (async) to be an Actor, the new MemoizedClosure actor.

As-is, this will cause a bunch of compiler warnings when it ships. Still, that's annoying enough that I'm going to consider that a breaking change.

@younata younata changed the base branch from main to nimble-13 July 29, 2023 04:53
@younata younata added this to the v13.0.0 milestone Jul 29, 2023
@younata younata merged commit c763b5c into nimble-13 Jul 29, 2023
12 of 13 checks passed
@younata younata deleted the asyncexpression_sendable branch July 29, 2023 05:15
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.

None yet

1 participant