Skip to content
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

Support GC to non-GC conversion #4590

Open
sdeleuze opened this issue Apr 11, 2022 · 4 comments
Open

Support GC to non-GC conversion #4590

sdeleuze opened this issue Apr 11, 2022 · 4 comments

Comments

@sdeleuze
Copy link

sdeleuze commented Apr 11, 2022

Hi,

As far as I know, a few GCed languages/platform are working on WASM support by leveraging the GC proposal:

C#/.NET could be a candidate as well but per @SteveSandersonMS feedback it seems it is not using the GC proposal yet.

For now only V8 supports Wasm GC, while Wasm engines with great WASI support like Wamstime does not support it.
Since GC is not straightforward to implement for Wasm engines, I am wondering if Binaryen could implement behind a flag GC to non GC conversion in order to ease adoption of GCed languages with WASI for Cloud/Edge use cases. I guess that would include typed function references emulation.

Would such kind of compatibility conversion make sense as part of Binaryen?

@kripken
Copy link
Member

kripken commented Apr 11, 2022

I think it could make sense. I have some work on that here: #4000 That lowers GC to linear memory but does not actually bundle a mark-sweep yet. Also, it's several months old and the wasm GC spec has evolved a lot, so it would need updating.

@SteveSandersonMS
Copy link

Regarding C# / .NET, as far as I understood, our current implementation doesn't make use of the wasm GC proposal because its capabilities were not enough. @lewing would know for sure though!

@sdeleuze
Copy link
Author

@kripken Glad to hear it could potentially make sense, and thanks for the link the PR. The Kotlin team seems to be interested.

@SteveSandersonMS I have updated the description accordingly.

@lewing
Copy link

lewing commented Jul 25, 2022

Regarding C# / .NET, as far as I understood, our current implementation doesn't make use of the wasm GC proposal because its capabilities were not enough. @lewing would know for sure though!

@vargaz outlined the issues here WebAssembly/gc#77

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants