dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.83k stars 4.62k forks source link

Make the mono interpreter into a runtime component #54421

Open lambdageek opened 3 years ago

lambdageek commented 3 years ago

Continuing our work on using a uniform mechanism to componentize the mono runtime, we should consider turning the interpreter into a runtime component.


Use case: iOS Device runtime pack should include libmono-ee-interp.a

In mono/mono, we built the interpreter for iOS devices as a separate static library that could be excluded from the build.

In dotnet/runtime we built the interpreter right into libmono.a for iOS device runtime packs. This leads to a size increase for the common case where published iOS apps use FullAOT and don't need the interpreter fallback.

We should use the CMake ENABLE_INTERP_LIB option for iOS device runtime packs. (We currently use it for wasm)

lambdageek commented 3 years ago

/cc @imhameed @spouliot

lateralusX commented 2 years ago

@lambdageek, maybe we should convert interpreter into a component, like we have for tracing, debugger and hot reload instead of continuing with special static library solution? If we agree on that, then maybe we should re-phrase this issue and move it to net8.

ghost commented 2 years ago

Tagging subscribers to this area: @directhex See info in area-owners.md if you want to be subscribed.

Issue Details
Continuing our work on using a uniform mechanism to componentize the mono runtime, we should consider turning the interpreter into a runtime component. --- Use case: iOS Device runtime pack should include libmono-ee-interp.a In mono/mono, we built the interpreter for iOS devices as a separate static library that could be excluded from the build. In dotnet/runtime we built the interpreter right into libmono.a for iOS device runtime packs. This leads to a size increase for the common case where published iOS apps use FullAOT and don't need the interpreter fallback. We should use the CMake `ENABLE_INTERP_LIB` option for iOS device runtime packs. (We currently use it for wasm)
Author: lambdageek
Assignees: -
Labels: `area-Infrastructure-mono`
Milestone: 7.0.0