Skip to content

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
@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

2 participants