Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
lambdageek opened this issue Nov 3, 2023 · 4 comments
Open

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

lambdageek opened this issue Nov 3, 2023 · 4 comments
Labels
arch-wasm WebAssembly architecture area-Meta design-discussion Ongoing discussion about design without consensus os-browser Browser variant of arch-wasm os-wasi Related to WASI variant of arch-wasm tracking This issue is tracking the completion of other related issues.
Milestone

Comments

@lambdageek
Copy link
Member

lambdageek commented Nov 3, 2023

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

@lambdageek lambdageek added design-discussion Ongoing discussion about design without consensus arch-wasm WebAssembly architecture area-Meta tracking This issue is tracking the completion of other related issues. os-wasi Related to WASI variant of arch-wasm os-browser Browser variant of arch-wasm labels Nov 3, 2023
@lambdageek lambdageek added this to the 9.0.0 milestone Nov 3, 2023
@ghost

This comment was marked as resolved.

@Anutrix
Copy link

Anutrix commented Nov 15, 2023

Minor note: ⏸️ symbol seems like 'feature is paused but might continue' when it actually means not applicable or no action needed aka it's conclusion has been reached.

@lambdageek
Copy link
Member Author

Minor note: ⏸️ symbol seems like 'feature is paused but might continue' when it actually means not applicable or no action needed aka it's conclusion has been reached.

Ok, replaced it with 🈚 which apparently means "free of charge". that's pretty close, maybe. There's also 🉑 which is "acceptable". If this is all too silly, maybe I'll just write "N/A"

@lambdageek
Copy link
Member Author

lambdageek commented Nov 21, 2023

We should also add the "thread spawning" aka "shared everything" proposal once it is a bit more mature https://github.com/WebAssembly/shared-everything-threads/blob/main/proposals/thread-spawn/Overview.md

Update 2024-01-08 added

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-wasm WebAssembly architecture area-Meta design-discussion Ongoing discussion about design without consensus os-browser Browser variant of arch-wasm os-wasi Related to WASI variant of arch-wasm tracking This issue is tracking the completion of other related issues.
Projects
None yet
Development

No branches or pull requests

3 participants