Closed Bug 1651799 Opened 5 years ago Closed 5 years ago

Simplify switches and flags for features that have shipped

Categories

(Core :: JavaScript: WebAssembly, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
81 Branch
Tracking Status
firefox81 --- fixed

People

(Reporter: rhunt, Assigned: rhunt)

Details

Attachments

(3 files)

We've now shipped bulk-memory/reference-types/multi-value, and still have a bunch of compile flags and runtime switches for controlling the features that we should be able to remove now.

Since some features are not implemented yet in Cranelift, we still need to keep a runtime shell flag / about:config option to be able to disable them, otherwise we can't properly test Cranelift anymore.

At this point, reftypes and SIMD are not supported in Cranelift (new backend, which means aarch64 right now but will be extended to x64 too soon enough), but everything else is. Reftypes are close to land in Cranelift, see also bug 1633721.

(In reply to Benjamin Bouvier [:bbouvier] from comment #1)

Since some features are not implemented yet in Cranelift, we still need to keep a runtime shell flag / about:config option to be able to disable them, otherwise we can't properly test Cranelift anymore.

At this point, reftypes and SIMD are not supported in Cranelift (new backend, which means aarch64 right now but will be extended to x64 too soon enough), but everything else is. Reftypes are close to land in Cranelift, see also bug 1633721.

Okay, and looking through the other proposals it doesn't look like threads (i.e atomics) are implemented either? So we should just be able to make simplifications bulk-memory/multi-value for now.

The pref will have no effect if the compile-flag isn't set, but this can confuse
some users who will see the pref in about:config.

Bulk memory is now enabled for all compilers and platforms, so let's remove the
configuration machinery for it.

Depends on D83422

This commit adds a test that tracks all experimental wasm features and asserts
that if they are enabled, then we must be in nightly. Each feature is also
given a small feature detection module that will fail to compile when it's
not enabled for extra protection.

Depends on D83423

It sounded like Julian (?) was going to do CL atomics, at least for arm64, but we probably also need x64 before removing the switch - not sure. In general, once a switch is gone the bar for enabling a new architecture for Cranelift will be higher.

Pushed by rhunt@eqrion.net: https://hg.mozilla.org/integration/autoland/rev/83c8b8ce71a8 Don't set reference-types pref when compile-flag is not set. r=bbouvier https://hg.mozilla.org/integration/autoland/rev/9961de8d65f8 Remove bulk-memory configuration options. r=bbouvier https://hg.mozilla.org/integration/autoland/rev/f3792719ddb6 Add test to ensure experimental features are not released. r=bbouvier
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: