Dear API owners,

Following the continued experiment for Garbage Collected WebAssembly
(WasmGC), we plan to ship the feature in M119 after the positive vote to
phase 4 by the WebAssembly Community Group today.

The feature has shown very good performance with reasonable compromises.
The findings from the origin trial are summarized in a public document
<https://docs.google.com/document/d/1KsbQLh_RzM9ixF6bzmJwyRMQLE-rSFlz_zNoGv-EITY/edit?usp=sharing>
.

This feature is tied to the Function References
<https://github.com/WebAssembly/function-references> proposal which is a
de-facto part of WasmGC (no current use outside of the proposal, hard
requirement for WasmGC) and only listed as a separate proposal for historic
reasons. The Function References proposal has therefore also been voted to
phase 4 on the same day as WasmGC.

We plan to launch the feature in the following manner:

   1.

   End the current origin trial with M118 as its last milestone
   2.

   Refactor the binary instruction representation to match the final spec
   (incompatible change)
   3.

   Ship the feature with M119


Our data from the trial has shown that there is a need for fast string
interoperability with JS that this proposal does not address. We plan to
launch a new experiment investigating different approaches to this problem
(see separate I2E mail).


Contact emailsad...@chromium.org, jkumme...@chromium.org

Explainer
https://github.com/WebAssembly/gc/blob/master/proposals/gc/Overview.md
https://github.com/WebAssembly/function-references/blob/main/proposals/function-references/Overview.md

Specificationhttps://github.com/WebAssembly/gc/tree/main/proposals/gc

Summary

The GC proposal adds efficient support for high-level managed languages to
WebAssembly, via struct and array types that enable language compilers
targeting Wasm to integrate with a garbage collector in the host VM. In
Chrome, enabling this feature implies enabling Typed Function References,
which allow function references to be stored in the aforementioned structs
and arrays.


Blink componentBlink>JavaScript>WebAssembly
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EJavaScript%3EWebAssembly>

Search tagswasm <https://chromestatus.com/features#tags:wasm>, webassembly
<https://chromestatus.com/features#tags:webassembly>, gc
<https://chromestatus.com/features#tags:gc>, managed objects
<https://chromestatus.com/features#tags:managed%20objects>, wasmgc
<https://chromestatus.com/features#tags:wasmgc>

TAG reviewhttps://github.com/w3ctag/design-reviews/issues/814

TAG review statusIssues addressed

Risks


Interoperability and Compatibility



*Gecko*: Positive

*WebKit*: No signal

*Web developers*: Positive Google Sheets, which is currently compiling Java
to JavaScript, is experimenting with using WasmGC to speed up their
calculation engine. JetBrains is working on a Kotlin -> WasmGC compiler.
Dart is working on a Dart -> WasmGC compiler, in collaboration with Flutter.

*Other signals*:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?



Debuggability



Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, Chrome OS, Android, and Android WebView)?No

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?No

Flag name on chrome://flags

Finch feature nameNone

Non-finch justification

The feature does not enable any functionality without the module being
explicitly compiled for that feature. We therefore chose to use an origin
trial to evaluate its suitability and stability. This allowed websites that
want to try this feature to opt in and do their own A/B comparisons.


Requires code in //chrome?False

Tracking bughttps://bugs.chromium.org/p/v8/issues/detail?id=7748

Launch bughttps://launch.corp.google.com/launch/4231622

Estimated milestones
OriginTrial desktop last 120
OriginTrial desktop first 112
OriginTrial Android last 120
OriginTrial Android first 112

Anticipated spec changes

Open questions about a feature may be a source of future web compat or
interop issues. Please list open issues (e.g. links to known github issues
in the project for the feature specification) whose resolution may
introduce web compat/interop risk (e.g., changing to naming or structure of
the API in a non-backward-compatible way).


Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/6062715726462976

Links to previous Intent discussionsIntent to Experiment:
https://groups.google.com/a/chromium.org/g/blink-dev/c/HDbvHCVFSW0
Intent to Extend Experiment:
https://groups.google.com/a/chromium.org/g/blink-dev/c/7F_daEqGQAY
Intent to Ship:
https://groups.google.com/a/chromium.org/g/blink-dev/c/7F_daEqGQAY


This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPAU7RzPfx-CgUJbWOhiCpFkhr1myZNVS8c4N3YUcLT538dcJQ%40mail.gmail.com.

Reply via email to