-
Notifications
You must be signed in to change notification settings - Fork 695
Using eclipse/omr to support GC languages to produce WebAssembly #1383
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
Comments
To allow languages to use OMR and also target Wasm, you could try porting the OMR C/C++ libraries to Wasm. This will likely however be difficult, since we don't have facilities for stack inspection yet (though they are being proposed), no way to JIT at a fine-grained level from within Wasm, and threads are only just being standardized / widely implemented. We are also working on a native way to do GC that is part of the Wasm spec directly. To port OMR to work directly on top of this would likely not be very productive, as in that case Wasm itself replaces most of the work that OMR does. So a language might be better off targeting Wasm GC directly in that case. If instead of those, you mean to suggest that OMR should be built-in to Wasm as the way to do GC, that may be difficult at this point, as several Wasm specific proposals for GC are already underway. Engines implementing Wasm typically already have a GC implementation (for JS) and would want to keep using it. You are encouraged however to get engaged in the Wasm GC discussions and propose how we can do things better. |
I am slightly more optimistic than @aardappel I think 😄 I'd be very interested to see someone port OMR to wasm, and I think it could be done today:
|
Hi dear Wasm community,
I would like to present OMR and its goals. I will also explain how this technology has potential to enable support for GC languages embedding on WebAssembly:
Source: https://www.eclipse.org/omr/starter/whatisomr.html
In summary, with OMR, the eclipse foundation attempts to solve the lack of shared components in the implementation of runtime for modern GC languages. This led to too many differences. The web being open source and cross platform, we should also go in the same direction, to support different languages and technologies on the web through WebAssembly.
Source: https://www.eclipse.org/omr/reference/components.html
We could take some of the components (GC, port, util) to integrate them in the specification for integrating Garbage Collection into WebAssembly. Another solution would be to implement a LLVM toolchain based on the native code (JIT) compiler, they are offering.
Git Hub repository: https://github.com/eclipse/omr
Eclipse OMR: https://www.eclipse.org/omr
Reference: https://www.eclipse.org/omr/reference/architecture.html
Building: https://www.eclipse.org/omr/guide/building.html
Presentations: https://www.eclipse.org/omr/resources/presentations.html
Goals: https://www.eclipse.org/omr/starter/goals.html
The text was updated successfully, but these errors were encountered: