-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
[mono] Componentize hot reload #52866
Conversation
Tagging subscribers to this area: @CoffeeFlux Issue DetailsMove all hot reload code to the hot_reload component. Should be no functional change. Although I did take the opportunity to remove one of the EE callbacks that turned out to be unnecessary.
|
06b10a6
to
f363a23
Compare
af90179
to
e864039
Compare
8a2147c
to
4b1dd43
Compare
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.
Looked primarily on the component implementation, not that deeply into the bulk of moved code. Couple of smaller things, otherwise, LGTM.
For the fast path data, we will leave a struct in the runtime with the values and pass its address to the component to fill in.
They're unused now
Use separate baseline and delta structs for tracking updates
Move the delta_image and method_table_update data into BaselineInfo and DeltaInfo. Keep a single `MonoImage:has_updates` flag to switch over to the slow path through the component.
Also setup the BaselineInfo and DeltaInfo earlier before the first string heap lookup
instead of hotreload-delta-gen CLI tool
if the hot reload component is stubbed out, return empty capabilities. This is a step toward removing FEATURE_METADATA_UPDATE and ENABLE_METADATA_UPDATE defines and solely using component infrastrucutre for controlling behavior
b5dd6de
to
a1a11b5
Compare
… var isn't set. Match CoreCLR behavior. Also makes our testsuite actually run the tests (we check for capabilities before running setting DOTNET_MODIFIABLE_ASSEMBLIES using the remote executor)
9b9dfc0
to
1b90e05
Compare
Move all hot reload code to the hot_reload component.
There are some functional changes:
delta_image
,method_table_update
fields) moved formMonoImage
toBaselineInfo
andDeltaInfo
structs in the component. So the locking is different now.metadata_update_init
EE callback was unused, so it's been removed.metadata_update_published
runtime callback is always defined, and its work is guarded by a runtime check of thehas_updates
flag.GetApplyUpdateCapabilities
method now calls an icall to find out from the hot reload component if the runtime was started in a way that supports hot reload and returns capabilities appropriately.There are also some changes to the console sample: