Hi Alex Some small responses: 1. We currently have around 120 OT registrants. We have had some informal feedback, including from Meet — who are planning to use JSPI as part of their effort to migrate to WebGPU. 2. Agreed that we can ping Webkit now. Will do soon. 3. The process for the CG hinges on a few things: getting the tests in good shape (done I hope), getting the spec in good shape (see below). Hopefully, we will be going to phase 4 before the end of the year. 4. Yes, there was a breaking change in 129. We retired the ‘old’ API and only supported the ’new’ API from that release. (The new API was actually live since 126.)
Wrt spec: it turns out that specifying JSPI in a faithful way has been challenging. This is due to a semantic mismatch between how JS is specified and how Wasm is specified. (Actually, it is mostly an issue for JS). However, I believe that we are in a reasonable position now; but I’m not counting chickens at the moment. The documentation link should be correct. It has not changed for a while. Francis > On Oct 16, 2024, at 9:54 PM, Alex Russell <slightly...@chromium.org> wrote: > > Hey Francis, > > A few small questions...: > Is the OT documentation link correct? > Have we requested a position from WebKit? Seems like we're far enough along > to start on that. > ...and a few larger questions: > If I understand this correctly, there was a *breaking* change in 129? If so, > that's helpful for requesting an end-to-end this long, as it would reset the > "burn in" clock. > Has there been feedback from the original OT that you can share? > Why shouldn't we just ship this now? I understand the WASM WG process > arguments, but if we've got good confidence in the current API shape and the > developer feedback on the M129+ API shape is positive, we might look to send > I2S before this OT ends (with a gapless OT). How are y'all thinking about > that? > Best, > > Alex > > On Thursday, October 17, 2024 at 3:30:33 AM UTC+5:30 Chromestatus wrote: >> Contact emails >> >> f...@chromium.org <mailto:f...@chromium.org> >> >> Explainer >> >> https://github.com/WebAssembly/js-promise-integration/blob/main/proposals/js-promise-integration/Overview.md >> >> >> Specification >> >> https://github.com/WebAssembly/js-promise-integration/blob/main/proposals/js-promise-integration/Overview.md >> >> >> Design docs >> >> >> https://docs.google.com/document/d/16Us-pyte2-9DECJDfGm5tnUpfngJJOc8jbj54HMqE9Y/edit#heading=h.n1atlriavj6v >> >> >> Summary >> >> Stack Switching denotes a technology that allows programs to suspend and >> resume computation. This is an active area that is part of the WebAssembly >> standards track. See https://github.com/WebAssembly/stack-switching and >> https://github.com/WebAssembly/meetings/tree/main/stack. This particular >> feature refers to the integration between JavaScript Promises and stack >> switching. This is described in more detail in >> https://docs.google.com/document/d/16Us-pyte2-9DECJDfGm5tnUpfngJJOc8jbj54HMqE9Y/edit# >> >> >> >> Blink component >> >> Blink>JavaScript>WebAssembly >> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EJavaScript%3EWebAssembly> >> >> >> Search tags >> >> stack switching <http://features/#tags:stack%20switching>, Promise >> <http://features/#tags:Promise>, JSPI <http://features/#tags:JSPI> >> >> TAG review >> >> https://github.com/w3ctag/design-reviews/issues/809 Review was declined, >> deferring to W3C WebAssembly CG >> >> TAG review status >> >> Pending >> >> Chromium Trial Name >> >> WebAssemblyJSPromiseIntegration >> >> Origin Trial documentation link >> >> https://github.com/WebAssembly/js-promise-integration >> >> WebFeature UseCounter name >> >> kV8WasmJavaScriptPromiseIntegration >> >> Risks >> >> >> >> Interoperability and Compatibility >> >> This spec is backed by a standardization effort. We do not plan to ship the >> JSPI until it has been standardized by the W3C Wasm WG. However, post >> standardization, we will depend on all browsers implementing the standard. >> >> >> >> Gecko: Positive (https://bugzilla.mozilla.org/show_bug.cgi?id=1850627) >> Mozilla have started their own imlementation >> >> WebKit: No signal >> >> Web developers: No signals >> >> Other signals: >> >> Activation >> >> Making use of JSPI requires some changes by WebAssembly-based developers (no >> impact on JavaScript developers). Depending on their toolchain usage a >> developer will need to modify their code. For Emscripten users, this is >> likely to be minimal as support for JSPI exists in Emscripten. >> >> >> >> Security >> >> 1. Control flow integrity. 2. Ensuring that JavaScript programs cannot >> suspend via JSPI. >> >> >> >> 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? >> >> >> >> >> Goals for experimentation >> >> >> >> >> Reason this experiment is being extended >> >> JSPI is part of a standards track effort. We are currently in 'stage 3' of a >> five stage process. The next stage (4) is when a specification is deemed >> final. There was a change in the API which we soft launched in M126 but we >> would like to formally switch to this new API in M129. (We had informed our >> users that we would be maintaining the old API through the end of the OT.) >> So, in summary there are two reasons for extending the origin trial: 1. We >> are not quite ready to move the spec to phase 4. This is for >> non-implementation reasons: we need to draft and review the specification >> text; which, for a feature like JSPI is not completely trivial. 2. We would >> like to allow sufficient time for users to fully experiment with the new >> API. We anticipate being able to fully ship JSPI before the end of 2024. >> >> >> >> Reason this experiment is being extended >> >> We wish to extend the OT for JSPI for a second time. Hopefully, this will be >> the last extension before shipping. We have recently implemented one of the >> key technology improvements that we believed necessary for shipping: >> growable stacks. However, performance remains a blocker for some partners >> and we would like to be able to continue performance improvements. The >> specification itself should be moving to phase 4 in the standards process; >> hopefully in the next few months. >> >> >> >> Ongoing technical constraints >> >> None. >> >> >> >> Debuggability >> >> Developers can piggyback on existing DevTools support for Promises to help >> with debugging JSPI applications. In particular the existing mechanisms for >> constructing extended stack traces from so-called Promise chains will also >> include stack traces from JSPI applications. >> >> >> >> 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 >> >> enable-experimental-webassembly-stack-switching >> >> Finch feature name >> >> None >> >> Non-finch justification >> >> None >> >> Requires code in //chrome? >> >> False >> >> Tracking bug >> >> https://bugs.chromium.org/p/v8/issues/detail?id=12191&q=owner%3Ame&can=2 >> >> Estimated milestones >> >> Origin trial desktop first 123 >> Origin trial desktop last 131 >> Origin trial extension 1 end milestone 131 >> Origin trial extension 2 end milestone 133 >> DevTrial on desktop 109 >> Origin trial Android first 123 >> Origin trial Android last 131 >> Origin trial WebView first 123 >> Origin trial WebView last 131 >> >> >> Link to entry on the Chrome Platform Status >> >> https://chromestatus.com/feature/5674874568704000?gate=5414230854205440 >> >> Links to previous Intent discussions >> >> Intent to Prototype: >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAdKk6BGFseZ6pBO2qEW_xeovVw1_guVq26rcNM1nWY442Y5Ng%40mail.gmail.com >> >> Intent to Experiment: >> https://groups.google.com/a/chromium.org/g/blink-dev/c/Fu79zrp7MoE >> Intent to Extend Experiment 1: >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALi9WK-JJNTYSeNdSuai827Qg5%3D2vZo-emYP2z-5vJOfE%2B8Nng%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/634314B0-1F26-43F7-B60D-6FE28CD361A7%40chromium.org.