-
Notifications
You must be signed in to change notification settings - Fork 5.3k
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 ↩