-
Notifications
You must be signed in to change notification settings - Fork 73
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
What's the roadmap for Garbage Collection? #44
Comments
Updated after @lars-t-hansen's comment. Note: probably there can be inaccuracies in answer below @PoignardAzur There is Reference Types proposal which is came out of GC and Host Bindings proposals and provides a way to reference host objects inside wasm. Reference Types doesn't imply GC in wasm (GC is necessary only if host references are GC'ed) but they are the basis for GC proposal. Reference Types are on phase 3 of WebAssembly W3C Process.
Also there are some open questions in GC proposal (which is on phase 1):
|
@chicoxyzzy, the spidermonkey links in your post are incorrect. Reftypes are in progress (metabugs for milestone 1, milestone 2) but are absolutely not finished, nor is the reftypes spec completely finished either, there are plenty of open issues and more are coming. The implementation of GC is in progress, but the link you reference above (under Reference Types) is to an initial prototype implementation of some partial ideas, and we are at least many months away from finishing this feature. |
@lars-t-hansen thank you for your corrections! I updated my comment. |
It's not really inactive, but I should update all the places to reflect that. |
Thanks. Fixed |
@chicoxyzzy Thank you for your answer. Even with the information you've given here, the advancement of Wasm GC still feels somewhat vague. It woud probably be helpful to post some of this in the README or the overview. Some questions that I still have:
|
@lars-t-hansen Interesting. Correct me if I'm wrong, but is the Mozilla team currently developing the "GC" proposal independently of the progression of "Reference Types" and "Types Object", hence why you're implementing aggregate types? Or am I misunderstanding these links? |
@PoignardAzur, The reftypes proposal is not intended to require the GC proposal nor anything like typed objects for JS, and we are indeed developing reftypes semi-independently from the other proposals. (Of course in Firefox, reftypes will be backed by a garbage collector and will be able to handle JS objects, but there are other embeddings where this is not interesting or necessary.) |
There is discussion in proposals repo about tracking implementation status of proposals WebAssembly/proposals#21 |
@lars-t-hansen That seems a little contradictory with the current MVP specification, which says its language is
I think it would be a lot easier for volunteers to provide help (both in writing down specs and implementing solutions) if there was a written consensus on what is done, what is to be done, and what needs to be agreed on. Right now it seems that the GC and Reftypes blueprints (eg spec+implem) reside in large part in the minds of Mozilla and Google engineers, which is obviously not ideal. People can't e.g. contribute to the spec if they don't know what's the official spec and what's outdated. Same thing for contributing code. |
@PoignardAzur you can join WebAssembly W3C Community Group to participate in CG meetings |
@PoignardAzur the proposal is in very early stages—I haven't yet presented it to TC39, so the explainer is pretty much all the information available right now.
WebAssembly's GC proposal is technically independent from JS Typed Objects, but Typed Objects are the JS reflection of the same objects specified in Wasm GC proposal. Think of it as two different aspects of the same underlying concerns. The reason we need both proposals is that these objects need to be efficiently accessible both from WebAssembly and from JS in order to be maximally useful. |
@PoignardAzur you may want to take a look at the notes from the most recent CG meeting at TPAC, as well as the presentations on the reference-types and GC proposals. They don't have all the spec information, but they do have the current status. |
Has anything changed in these two years? |
@XVilka, most of the work has been spent on splitting off smaller, incremental proposals as preliminaries and advancing them separately. Concretely, the reference types proposal, the typed references proposal, and the type imports proposal. Unfortunately, that work is taking much longer than we anticipated. In the meantime, some prototyping on the proposal itself has started. |
I see this as the most important feature to get mass adoption of other languages in the web! |
There has been much more activity on this proposal recently and we are scheduled to poll for phase 2 at the CG meeting on February 15. Closing this issue for now since the original question has been answered. |
The activity for this proposal has slowed down quite a bit since August, and the current MVP implementation is full of TODOs. I'm sure work on the proposal is still ongoing, and I don't know what the priorities of the Wasm team are, but I'm really excited by the GC proposal and what it would mean for Wasm adoption.
How can we contribute? Could we get a general roadmap for what needs to be done before the GC proposal is implemented? Is there some area where the community could be helpful?
I would ordinarily look at existing repository issues for starting points, but most of the issues here seem to be inactive; mostly old questions and people proposing alternate schemes.
The text was updated successfully, but these errors were encountered: