Skip to content

[tracking] .NET support for post-MVP WebAssembly Proposals #94351

Open
@lambdageek

Description

@lambdageek

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

  1. Supported by toolchain

  2. 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.

  3. Supported by toolchain, intrinsics added together with SIMD in https://github.com/dotnet/runtime/issues/53730

  4. Supported by toolchain

  5. .NET does not use the WAT text format directly

Metadata

Metadata

Assignees

No one assigned

    Labels

    arch-wasmWebAssembly architecturearea-Metadesign-discussionOngoing discussion about design without consensusos-browserBrowser variant of arch-wasmos-wasiRelated to WASI variant of arch-wasmtrackingThis issue is tracking the completion of other related issues.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions