WasmGC implementation status?

Hi all,

With the recent announcements about browser support landing in Chrome and Firefox for the WebAssembly Garbage Collection proposal, I was curious whether there were any more recent public updates about efforts to support GC types in LLVM and Clang.

The most recent updates I’ve been able to find are these:

On a related note, is anyone aware of any additional language implementations that have concrete plans or work in progress to take advantage of WasmGC, besides the ones listed in this blog post (Dart, J2Wasm Java, Kotlin, wasm_of_ocaml, and Hoot Scheme)? My assumption is that at this point, only languages that implement their own compilation directly to WASM can do this, but I’m guessing that LLVM and Clang support for GC types would enable a lot of languages that either have interpreters written in C/C++ or that compile to LLVM IR to do so.

-Miles

Hi,

Myself and a couple of colleagues at Igalia are responsible for implementing reference types in Clang/LLVM. Our goal was indeed to implement WasmGC support but our funding dried out and we ended up not being able to do it, although we got to the point of having some pre-work downstream for this.

I’ve recently been spending some time refactoring our current support for externref and funcref (moving to target extension types [WebAssembly] Refactor Wasm Reference Types as TargetExtType by pmatos · Pull Request #71540 · llvm/llvm-project · GitHub), though don’t expect being able to complete full GC type support in my spare time.

At this point, it would be really a matter of funding for us to continue this work and get it upstream. If you know someone that needs WasmGC, it would be great if you can get them in touch with us.

Paulo Matos

2 Likes