Hey all, I've made a bunch of changes on the road to a "pitch #5", based on feedback here. You can preview the changes at https://github.com/DougGregor/swift-evolution/pull/62, and here's the summary:
- Changes in the fifth pitch:
- Drop the prohibition on having multiple
isolated
parameters. We don't need to ban it. - Replace
Sendable
withSendable
to better track SE-0302. - Add the
Actor
protocol back, as an empty protocol whose details will be filled in with a subsequent proposal for [custom executors][customexecs]. - Replace
ConcurrentValue
withSendable
and@concurrent
with@sendable
to track the evolution of [SE-0302][se302]. - Clarify the presentation of actor isolation checking.
- Add more examples for non-isolated declarations.
- Added a section on isolated or "sync" actor types.
- Drop the prohibition on having multiple
From my perspective, the proposal is not complete without nonisolated
, and my read of the situation is that there is no actual disagreement about whether nonisolated
is a good idea, or it's semantics, or even it's spelling (now). Yes, the proposal would be somewhat smaller without it, but at the cost of having yet another concurrency proposal that scatters the knowledge further. It fits well alongside isolated
parameters to have the modifier that disables the implicit isolated
on self
. If we rewound the clock to the pre-Swift 1.0 days, could we imagine introducing inout
without also introducing mutating
?
Global actors was large, so we split it out of the actors proposal. async let
was both controversial and confusing the discussion of structured concurrency, so we split it out of that proposal. Both were separable. For me, nonisolated
doesn't meet that bar.
The actual disagreement, as I understand it, is whether another feature, called isolated conformances in the future directions of this proposal, is also a critical part of the model. We have neither a set of agreed-upon examples nor a complete design to evaluate that feature. My own experience is that I have not needed this feature. We should keep exploring it further, but we shouldn't hold up progress on actors themselves waiting for it.
Doug