Hi Mike, We can limit it to 3 milestones then and request another extension once we get further with our experimentation on string constants, because I don't expect that this will be enough. Every change we make has a 2-3 months of turnaround time because of the multitude of parties (proposal change → Wasm Runtime + Wasm Tools implementation → Compiler toolchain implementation → Application recompilation and redeployment) involved to implement the feature end-to-end and their respective release schedules.
To summarize the progress along each dimension: - As mentioned, there was progress on the draft spec and we had a community group vote on it with very strong support. - We are planning on triggering a TAG review this week. But we don't intend to ship before reaching phase 4 of the proposal which would be covered in the exceptions anyway. - The status of the Chrome Status entry is still up-to-date in that we have a very positive signal from Firefox (Mozilla is actually championing this proposal) with an active implementation and regular updates and no signal from Safari yet. - The spec community is heavily involved through presentations to the community group and active discussions <https://github.com/WebAssembly/js-string-builtins/issues> on the proposal itself. - We don't have WPT tests yet, but they will be added before phase 3 as required by the proposal process. Let me know if you have any further questions! Best regards, Emanuel On Tue, Mar 12, 2024 at 3:52 PM Mike Taylor <miketa...@chromium.org> wrote: > 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/CAPAU7Rw8he3ERTQbCgFb5e3Bs-Wg%2B-hjhzufk9MrgGEJoTkK7A%40mail.gmail.com.