onnxruntime
0ca01e20 - Address review: retract the JSPI-only conclusion, fix harness hygiene, bound the size claim

Commit
80 days ago
Address review: retract the JSPI-only conclusion, fix harness hygiene, bound the size claim P1: the MAIN_MODULE=2 legacy-EH failure was self-inflicted. libdylink.js synthesises invoke_* and __cxa_find_matching_catch_* on demand in \, so the report's claim that a side module 'cannot add them after the fact' was wrong. The real gaps were symbols the prototype's own filter dropped. With a complete derivation legacy EH passes, and so does legacy EH + ASYNCIFY, which means the plugin-EP path does NOT force JSPI and does not pin ORT-web to a browser floor. Three inclusion mechanisms are needed: - EXPORTED_FUNCTIONS for wasm functions/data/tags (incl. __THREW__) - DEFAULT_LIBRARY_FUNCS_TO_INCLUDE for JS-library functions (llvm_eh_typeid_for) - a custom --js-library for JS-only symbols with no C-callable alias (getTempRet0) __asyncify_data/__asyncify_state must NOT be listed: the ASYNCIFY Binaryen pass runs after wasm-ld and exports them itself. P2: build.ps1 now deletes and recreates each output directory, and run_all.ps1 honours \ by skipping execution and reporting SKIPPED, so a row can no longer show PASS from stale artifacts. P2: the duplicated-core cost is relabelled as an explicit projection. Added measurements of the published onnxruntime-web 1.27.0 wasm artifacts to bound it, including the clean apples-to-apples asyncify-vs-jspi comparison (23.13 MB vs 14.35 MB, ASYNCIFY costs ~8.8 MB). Also drop the superfluous experimental JSPI flags from browser_run.js; stock Chromium 151 exposes WebAssembly.Suspending without them. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Author
Parents
Loading