Description
Currently the wasm32-unknown-unknown
target is on the stable channel, but in fact it's not actually a stable target! This issue is intended to track blockers and known stabilization questions around having an "official blessing" for the target itself to be stable. My hope is that we can be sure to catalog and track any issues that specifically have to do with the target/toolchain here to ensure that they're solved before the target is "stable".
To me the stability of the target, wasm32-unknown-unknown
, is different from the usability of the target itself (in terms of integration with tools like wasm-bindgen, wasm-pack, stdweb, etc), but rather the ability of the Rust target to expose the abilities of the wasm format itself. This target will of course evolve over time as wasm itself does, but we gotta catch up first :)
With that in mind, here's a current list (which I'll try to keep updated) of known deficiencies in the target and bugs we need to fix!
- Supporting custom sections - wasm files have support for custom sections, but Rust code can't insert contents into these sections!
- Core intrinsics are not exposed - such as growing and getting the current memory
- Ability to import functions from a module - all wasm imports are required to have a module name attached, but right now in Rust we don't attach any module names!
- ABI of exporting functions from Rust to wasm - how do we want to export Rust functions to wasm? Whitelist types in the ABI?
"wasm"
ABI? - What to do about injected math functions
- Memory layout of wasm modules - is global data in the right place? is the stack too small?
- What can the standard library assume? - can libstd implement any APIs without panicking?
- Interoperation with wasm tables