Description
Summary
This issue attempts to collect the post-MVP WebAssembly spec proposals. The goal is to provide a convenient place to collect issues for the individual proposals and the status of each proposal with respect to the .NET runtime.
This list of in-progress proposals is from WebAssembly/proposals@0099331
Legend | |
---|---|
not currently planned | ⏹️ |
not applicable or no action needed | 🈚 |
supported | 🏁 |
in progress | 🏃 |
under consideration | 🤔 |
needs investigation | 🐌 |
For the status of support for each proposal by various popular WebAssembly engines, see https://webassembly.org/roadmap/
Accepted proposals
These are the proposals in https://github.com/WebAssembly/spec/tree/main/proposals that have been merged into the spec
Proposal | dotnet/runtime issue | .NET status |
---|---|---|
bulk memory operations | 🏁 1 | |
multi-value | 🈚2 | |
non-trapping float-to-int conversion | 3 | 🏁 |
reference types | 🐌 | |
sign extension operators | 🏁 4 | |
SIMD | #53730 | 🏁 |
Phase 4 - Standardize the feature (WG)
Proposal | dotnet/runtime Issue | .NET status |
---|---|---|
tailcall | #94352 | 🐌 |
extended constant expressions | 🐌 | |
typed function references | 🐌 | |
garbage collection | #94420 | ⏹️ |
multiple memories | 🐌 | |
threads | #68162 | 🏃 |
relaxed SIMD | 🐌 |
Phase 3 - Implementation Phase (WG + CG)
Proposal | dotnet/runtime issue | .NET status |
---|---|---|
custom annotation syntax in the text format | - | 🈚5 |
memory64 | #94108 | 🐌 |
exception handling | #84573 | 🏁 |
web content security policy | #68374 | 🏁 |
branch hinting | 🐌 | |
JS promise integration | #80904 | 🐌 |
type reflection for WebAssembly JavaScript API | 🐌 |
Phase 2 - Proposed Spec Text Available (WG + CG)
Proposal | dotnet/runtime issue | .NET status |
---|---|---|
ECMAScript module integration | 🐌 | |
relaxed dead code validation | 🐌 | |
numeric values in WAT data segments | 🐌 | |
instrument and tracing technology | 🐌 | |
extended name section | 🐌 |
Phase 1 - Feature Proposal (CG)
Proposal | dotnet/runtime issue | .NET status |
---|---|---|
type imports | 🐌 | |
component model | 🐌 | |
WebAssembly C and C++ API | 🐌 | |
flexible vectors | 🐌 | |
call tags | 🐌 | |
stack switching | 🐌 | |
constant time | 🐌 | |
JS customization for GC Objects | 🐌 | |
memory control | 🐌 | |
reference-typed strings | 🐌 | |
profiles | 🐌 | |
JS string builtins | 🐌 | |
rounding variants | 🐌 | |
shared everything threads | #96629 | 🐌 |
Footnotes
-
Supported by toolchain ↩
-
There may be some micro-optimization opportunities for the jiterpreter to return multiple values. Interpreter and AOT use the C stack to return .NET valuetypes not the WASM stack. ↩
-
Supported by toolchain, intrinsics added together with SIMD in https://github.com/dotnet/runtime/issues/53730 ↩
-
Supported by toolchain ↩
-
.NET does not use the WAT text format directly ↩