-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[mono] Componentize hot reload #52866
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
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
lateralusX
left a comment
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_updatefields) moved formMonoImagetoBaselineInfoandDeltaInfostructs in the component. So the locking is different now.metadata_update_initEE callback was unused, so it's been removed.metadata_update_publishedruntime callback is always defined, and its work is guarded by a runtime check of thehas_updatesflag.GetApplyUpdateCapabilitiesmethod 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: