Hi Emanuel,
For OTs, we can approve extensions for 3 milestones at a time, depending
on the criteria set at
https://www.chromium.org/blink/launching-features/#origin-trials. Would
you mind summarizing progress in the various areas? It sounds like there
is good engagement from the "spec community" already.
thx,
Mike
On 3/12/24 8:35 AM, Emanuel Ziegler wrote:
Dear API owners,
Our origin trial on supporting JS Strings in Wasm
<https://developer.chrome.com/origintrials/#/view_trial/2142587522721513473>
(JS String Builtins
<https://github.com/WebAssembly/js-string-builtins/blob/main/proposals/js-string-builtins/Overview.md>
for Wasm) has reached its final milestone and we would like to
continue to experiment with it.
The current status of the proposal and our experiments
<https://docs.google.com/document/d/1zL9goDsawTQUFuuQ8ddI_pUcLY1_iFOsHaDZ374dnGw/edit?usp=sharing>
is as follows:
* The proposal is progressing well and has *reached phase 2* on
January 16 with overwhelming support by the community group (17
votes strongly in favor, 11 votes in favor, 4 neutral and no votes
against).
* Performance of native support for JS strings in J2Wasm, Kotlin and
Dart continues to look highly promising, making this a top
priority for us to finalize the proposal and ship it in Chrome
this year.
* There were a *series of changes
<https://docs.google.com/presentation/d/1gbyQz0nbLJJ07lbi8iuLHSchQ2-fH29UXS5ebLnG0ZU/edit#slide=id.g1ef40614c6f_0_0>
to the proposal* and its API leading up to the vote which since
then have all been implemented in V8.
* *Sheets and J2Wasm started experimentation on the proposal* and we
expect in-the-wild performance numbers of the new API within the
next weeks, comparing this with the previous proposal (StringRef)
<https://github.com/WebAssembly/stringref/blob/main/proposals/stringref/Overview.md>
that this one will replace.
* *More experimentation* *with respect to string constants *around
binary size, memory overhead and initialization performance is
required. Several options
<https://docs.google.com/document/d/12Kxqfg56few1NNH0qcF0KsGh8L2QVGox0ldpEabJDOA/edit>
are available regarding their implementation in the current proposal.
* Rollout of Sheets experiments is currently at 20% of production
users offering us a wide number of real-world use cases.
We would therefore like to *extend the origin trial by another 6
milestones*, effectively ending it with M130. This is taking into
account the long turnaround times required to test any API change
between proposal changes, their implementation in Chrome, Binaryen,
J2Wasm and Sheets until we can update the experiment and gather new
data. We expect to reach phase 3 within the next months and want to
use the data to inform the final shape of the proposal to be voted to
phase 4, hopefully before the end of the year.
Thank you,
Emanuel
Contact emails
ecmzieg...@chromium.org, jkumme...@chromium.org, ad...@chromium.org
Explainer
None
Specification
https://github.com/WebAssembly/js-string-builtins/blob/main/proposals/js-string-builtins/Overview.md
Summary
This feature exposes common JS string operations for easy import into
WebAssembly and optimizations thereof. This allows creating and
manipulating JS strings from WebAssembly without native support within
WebAssembly while still allowing for a similar performance as native
string references. The mechanism works by exposing suitably strict
versions of JS string operations in the WebAssembly JS API. These can
be imported by modules using externref as a generic data type for
storing the strings. The engine can identify that these imports can be
represented by native graph operators without the need for calling
into JS. This leads to a comparable peak performance as native string
operations while allowing quick interoperability with JS since no
copying at the boundary is required when calling into arbitrary JS
functions that consume strings.
Blink component
Blink>JavaScript>WebAssembly
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EJavaScript%3EWebAssembly>
TAG review
None
TAG review status
Not applicable
Chromium Trial Name
WebAssemblyJSStringBuiltins
Link to origin trial feedback summary
https://docs.google.com/document/d/1zL9goDsawTQUFuuQ8ddI_pUcLY1_iFOsHaDZ374dnGw/edit?usp=sharing
Origin Trial documentation link
https://github.com/WebAssembly/js-string-builtins/blob/main/proposals/js-string-builtins/Overview.md
Risks
Interoperability and Compatibility
None
/Gecko/: Positive
/WebKit/: No signal
/Web developers/: No signals
/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?
None
Goals for experimentation
Ongoing technical constraints
None
Debuggability
None
Will this feature be supported on all six Blink platforms
(Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes
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
None
Finch feature name
None
Non-finch justification
None
Requires code in //chrome?
False
Estimated milestones
Origin trial desktop first 119
Origin trial desktop last 124
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/6695587390423040
Links to previous Intent discussions
Intent to Experiment:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPAU7RyzxKa0Pj6q7B_jyfT%3DH%2BSK264%3Dx8wn1ans%3D8UjHRhctQ%40mail.gmail.com
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/CAPAU7RyYPNTcmt1uHe279qW46ff3S%3DZ-M%3DHZjKn%3DK%2Bgp_0DyZw%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPAU7RyYPNTcmt1uHe279qW46ff3S%3DZ-M%3DHZjKn%3DK%2Bgp_0DyZw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
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/8cef6b16-f26c-4704-99d1-eaf7f90e1752%40chromium.org.