As of Firefox 155, we intend to enable the WebAssembly compact import section encoding by default on all platforms. This is a binary-only change to reduce module sizes with no impact to WebAssembly semantics.

*Summary:*

The import section <https://webassembly.github.io/spec/core/binary/modules.html#binary-importsec> of a WebAssembly binary currently is a simple list of (module name, item name, type) tuples. In practice, the module names are highly redundant (usually all "env" or similar), and for modules with many imports, this can be surprisingly wasteful.

The impact is particularly large for users of imported JS string constants <https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Imported_string_constants>. In this case, the expected overhead is so high that MDN recommends using an empty string as the module name to minimize binary size, which is absurd and points to the need for a less wasteful encoding.

The Compact Import Section proposal, which we champion, addresses this problem by providing two new binary encoding options that deduplicate module names, and optionally the import types as well. This is an encoding-only change with no impact to the behavior or semantics of WebAssembly.

*Bugs:*

Tracker: https://bugzilla.mozilla.org/show_bug.cgi?id=wasm-compact-imports
Enable by default: https://bugzilla.mozilla.org/show_bug.cgi?id=2062344

*Specification:*

https://github.com/WebAssembly/compact-import-section

*Standards Body:*

W3C (WebAssembly CG & WG)

*Platform Coverage:*

All platforms

*Preference:*

javascript.options.wasm_compact_imports

*DevTools Bug:*

N/A

*Extensions Bug:*

N/A

*Use Counter:*

N/A

*Standards-Position Discussion:*

None, covered by our blanket policy for Wasm proposals.

*Other Browsers:*

- Blink: Implemented, not yet shipped (https://chromium-review.googlesource.com/c/v8/v8/+/7573949)
- WebKit: No public signals

*web-platform-tests:*

None yet, but we run the official spec tests that will eventually be upstreamed into WPT.

--
You received this message because you are subscribed to the Google Groups 
"[email protected]" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/67b41876-daf0-4b45-8814-b526cf9b80a7%40mozilla.com.

Reply via email to