-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[Distributed] Complete remote actor resolve() implementation in SIL #38823
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
[Distributed] Complete remote actor resolve() implementation in SIL #38823
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you delete the binary file lol
from this PR? I think you added by mistake. 😆
d86175d
to
25308f5
Compare
1. We're no longer synthesizing the local init. All designated inits of a dist actor must have exactly one ActorTransport parameter. This parameter is used in the init's prologue to initialize some of its members. 2. We're synthesizing a factory function for the resolve initialization, instead of an actor-member named `init` to serve that purpose. As such, much of the earlier infrastructure is no longer needed, etc.
We'd like to support factor initializers for distributed actor types that are synthesized by SILGen. We already do something similar for memberwise initializers for structs. Thus, this patch generalizes that concept into a new BodyKind for AbstractFunctionDecls called BodyKind::SILSynthesize. In addition, to help differentiate the kinds of AFDs that are SILSynthesized into different families for SILGen to recognize, we also have a new enum SILSynthesizeKind to indicate whether it is a memberwise init, etc.
40fbea3
to
a33f8cd
Compare
SILGenDistributed
a33f8cd
to
829a5d6
Compare
@swift-ci please smoke test |
517512f
to
b4e8bbb
Compare
1255661
to
a721856
Compare
@swift-ci please smoke test and merge |
lol and removed the |
a721856
to
bf37ba6
Compare
Actually do need one of those extra ensureDistributedModuleLoaded. |
@swift-ci please smoke test and merge |
This builds on #38822 [Distributed] Initializer and lifecycle call synthesis via SIL, and pulls in @kavon's work from #38739
I then continued completing the SIL impl to set properties -- almost there...