dotnet / runtimelab

This repo is for experimentation and exploring new ideas that may or may not make it into the main dotnet/runtime repo.
MIT License
1.42k stars 198 forks source link

[NativeAOT-LLVM] [Question] Copy over mono JS compatibility from CoreRT? #1869

Open yowl opened 2 years ago

yowl commented 2 years ago

In CoreRT we had https://github.com/dotnet/corert/blob/master/src/System.Private.WebAssembly/InternalCalls.cs to handle some hardcoded internal calls from mono:

https://github.com/dotnet/runtime/blob/9ba9a300a08170c8170ea52981810f41fad68cf0/src/mono/wasm/runtime/driver.c#L400-L407

This is still present in mono, so I'm assuming we are going to need the same workaround in NativeAOT-LLVM as we had in CoreRT, there's nothing magic that would allow the removal of the method mapping that we had:

https://github.com/yowl/corert/blob/d463cc14e95006ba68f732ad733bc17ebb84fc7d/src/ILCompiler.WebAssembly/src/CodeGen/ILToWebAssemblyImporter.cs#L1875-L1884

The original CoreRT discussion: https://github.com/dotnet/corert/issues/8303

Thanks,

(Looking at this now, because thought I'd try to get AvaloniaUI template project to compile)

jkotas commented 2 years ago

there's nothing magic that would allow the removal of the method mapping that we had

Agree.