This will be a long-term project, and is one of the goals of Nimble 13. This branch is intended to be a long-running branch.
Most of this work is "$SOME_CLASS needs to conform to Sendable".
As CI indicates, this breaks the async version of waitUntil. This work will require a re-examining of how waitUntil and the toEventually methods work in async contexts.
There are also a number of issues in Apple APIs that also block this.
Apple API issues:
NSException does not conform to Sendable.
Nothing in Dispatch conforms to Sendable. Again, Swift Concurrency and GCD are not really compatible with each other.
Some of these can be solved by adding an extension to the relevant API and making it conform to Sendable. I am strongly against shipping that, as it could cause issues with other libraries that do the same. Similarly, I am against adding the @preconcurrency tag to the relevant import statements to fix those warnings.
This will be a long-term project, and is one of the goals of Nimble 13. This branch is intended to be a long-running branch.
Most of this work is "$SOME_CLASS needs to conform to
Sendable
".As CI indicates, this breaks the async version of
waitUntil
. This work will require a re-examining of howwaitUntil
and thetoEventually
methods work in async contexts.There are also a number of issues in Apple APIs that also block this.
Apple API issues:
NSException
does not conform to Sendable.Dispatch
conforms to Sendable. Again, Swift Concurrency and GCD are not really compatible with each other.Some of these can be solved by adding an extension to the relevant API and making it conform to Sendable. I am strongly against shipping that, as it could cause issues with other libraries that do the same. Similarly, I am against adding the
@preconcurrency
tag to the relevant import statements to fix those warnings.