[Returned for revision] SE-0316: Global Actors

The review of SE-0316: Global Actors has concluded, and the core team has decided to return the proposal for revision. There were several points of feedback that the next revision should address:

The review discussion during this round also did not provide much comment about the inference rules for global actors. These are rather intricate and subtle, so the core team would like some more feedback on how well they work in real-world code.

Because Juneteenth weekend is starting tomorrow, June 18, for many U.S. developers, I will schedule the next review to begin next Monday, June 21. Doug has already revised the proposal to take the above feedback into account.

Thanks to everyone who participated in the review!


I’m happy to see that there is now a GlobalActor protocol but I’m confused by why an attribute is still used and the conformance is implicit. Why not get rid of the attribute and have user code state the conformance explicitly?

My thinking here is that all types that are custom attributes today (result builders and property wrappers) are themselves marked with an attribute to make it clear from the type definition that they can be used as an attribute, so global actors should be as well. We could use the conformance as a marker instead, but (1) it would be inconsistent, and (2) it makes it more expensive for tools to determine what types can be used as custom attributes because they have to resolve protocol conformances.