gc
gc copied to clipboard
Branch of the spec repo scoped to discussion of GC integration in WebAssembly
It would be useful to be able to initialize structs with default fields even if there are immutable fields. In that case, the immutable fields would need to be provided...
We recently discussed the question how expensive "unnecessary" casts are (i.e. casts that a Wasm engine has to perform because the type system can't express that they are unnecessary, even...
In light of recent discussions about JS interop over on #150 I revisited the [MVP-JS.md](https://github.com/WebAssembly/gc/blob/master/proposals/gc/MVP-JS.md) document. A common scenario for JS APIs is to pass objects around that have both...
In #121 (specifically [here](https://github.com/WebAssembly/gc/pull/121#discussion_r477510526)), there is discussion of how Erlang relies on keeping process heaps isolated for quick clean up. It seems this might be very important to good performance...
As briefly mentioned in https://github.com/WebAssembly/gc/issues/145, arrays have yet unaddressed overhead / interoperability problems: * A compiler (or its standard library) cannot efficiently pre-allocate or resize arrays, if the language's array...
It's still an open question how dynamic dispatch, in particular virtual and interface method calls, should work post-MVP. To contribute to the discussion about this, I wrote up a (sketch...
Every WebAssembly application will have embedder-specific code for a variety of reasons. For every (non-monolithic) application, that embedder-specific code will include coordinating separately compiled modules. At the very least, this...
The spec for `rtt.canon` says that the returned `rtt` is at index 1 unless the specified type is `anyref`. But what if the specified type is an imported type and...
Adds a "Failure" subsection to MVP.md briefly describing that allocations can fail, that implementations are allowed to fail however they wish up to and including terminating the host, and noting...
Array lengths are `i32`s, but what are the valid ranges? Is it interpreted as a signed number, which may be up to 2^31-1 elements? Or an unsigned number up to...