Skip to content

[hot_reload] Add instance fields - #76462

Merged
lambdageek merged 55 commits into
dotnet:mainfrom
lambdageek:hot-reload-add-innstance
Nov 22, 2022
Merged

[hot_reload] Add instance fields#76462
lambdageek merged 55 commits into
dotnet:mainfrom
lambdageek:hot-reload-add-innstance

Conversation

@lambdageek

@lambdageeklambdageek commented Sep 30, 2022

Copy link
Copy Markdown
Member

Fixes#63643

Remaining work:

  • get/set fields in the debugger
  • Add instance properties
  • verify ves_icall_property_info_get_default_valueworks with added props
  • Add instance events (need added skeletons)
  • mono_class_get_field_token
  • mono_class_get_event_token
  • mono_class_get_property_token
  • mono_field_get_rva
  • init_weak_fields_inner
  • ves_icall_RuntimeFieldInfo_GetFieldOffset
  • ves_icall_System_RuntimeFieldHandle_GetValueDirect/SetValueDirect
  • audit callers of mono_handle_unsafe_field_addr
  • mono_metadata_field_info_full
  • mono_metadata_get_marshal_info, possibly

@ghostghost assigned lambdageekSep 30, 2022
@ghostghost added the area-EnC-mono Hot Reload for WebAssembly, iOS/Android, etc label Sep 30, 2022
@lambdageek
lambdageekforce-pushed the hot-reload-add-innstance branch from 0a73fe5 to 0da7ebfCompareOctober 4, 2022 20:15
@lambdageeklambdageek changed the title [mbr] Add instance fields[hot_reload] Add instance fieldsOct 4, 2022
@lambdageek
lambdageek marked this pull request as ready for review October 4, 2022 20:24
@lambdageek

Copy link
Copy Markdown
MemberAuthor

@thaystg@BrzVlad could you take a look. Vlad: I'm adding an interp opcode and some transform changes to support it

@lambdageek

Copy link
Copy Markdown
MemberAuthor

(Some of the code is part of #76618 )

@lambdageek

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Comment threadsrc/mono/mono/mini/interp/interp.c Outdated
@lambdageek
lambdageekforce-pushed the hot-reload-add-innstance branch from ca44d25 to c0fba82CompareOctober 5, 2022 19:17
@lambdageek

Copy link
Copy Markdown
MemberAuthor

Found a few more items that need work before this is ready; updated the PR description

@lambdageek

Copy link
Copy Markdown
MemberAuthor

Interesting. CoreCLR is crashing on something that I'm doing in the AddInstanceField test that I added in this PR 😁

@lambdageek

Copy link
Copy Markdown
MemberAuthor

CoreCLR failure is #76702

@lambdageek
lambdageekforce-pushed the hot-reload-add-innstance branch from 139dfd1 to 517978eCompareNovember 15, 2022 23:47
lambdageekand others added 8 commits November 17, 2022 09:46
Note: we're not doing anything with the new PropertyMap row
Note2: we get MethodSemantics rows for properties that got updated,
and we're currently ignoring them. Need to check that this is
reasonable. (A test would be to use reflection to grab a getter or
setter whose method body was changed and then try and invoke it and
verify that we're calling the correct method.)
@lambdageek
lambdageekforce-pushed the hot-reload-add-innstance branch from 78dedf7 to 2934993CompareNovember 18, 2022 19:22
@lambdageek

lambdageek commented Nov 21, 2022

Copy link
Copy Markdown
MemberAuthor

@thaystg@fanyang-mono This PR is ready. Could you please take another look.

Comment threadsrc/mono/wasm/debugger/DebuggerTestSuite/HotReloadTests.cs Outdated
@lambdageek
lambdageek merged commit 2ae7f5d into dotnet:mainNov 22, 2022
@ghostghost locked as resolved and limited conversation to collaborators Dec 22, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-EnC-monoHot Reload for WebAssembly, iOS/Android, etc

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[mono] Hot Reload: support adding instance fields

3 participants

@lambdageek@thaystg@BrzVlad