Closed Bug 1742790 Opened 2 years ago Closed 2 years ago

WasmFeatures flags should be more flexible

Categories

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

defect

Tracking

()

RESOLVED FIXED
96 Branch
Tracking Status
firefox96 --- fixed

People

(Reporter: lth, Assigned: lth)

Details

Attachments

(1 file)

As it is, when a feature is EXPERIMENTAL the flag's default is off and the shell will look for and accept --wasm-whatever. When we flip the flag to DEFAULT, the flag's default is on and the shell looks for --no-wasm-whatever, and importantly, --wasm-whatever is now rejected with an error. This is too inflexible, and breaks fuzzing unless we carefully coordinate things. Instead, we should extend this system so that --wasm-whatever is allowed for a time. Perhaps we need a third state between EXPERIMENTAL and DEFAULT, call it TENTATIVE for the sake of argument. With EXPERIMENTAL, --no-wasm-whatever should be accepted and do nothing; with TENTATIVE, --wasm-whatever should be accepted and do nothing; with DEFAULT, --wasm-whatever should cause an error.

On IM, decoder notes:

another good reason for this TENTATIVE state is btw automation
the bug automation we have in place (reproducing, bisecting, fix confirming) breaks, if flags are removed too quickly

Introduce a TENTATIVE state for a feature that allows the shell flags
to be used more flexibly: the feature is enabled bug --wasm-whatever
can be used as a no-op. This helps reduce breakage while we're in the
process of enabling a feature by default.

Finesse the EXPERIMENTAL state so that --no-wasm-whatever is accepted
as a no-op.

Assignee: nobody → lhansen
Status: NEW → ASSIGNED
Pushed by lhansen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/dbc70b910145
Make WasmFeatures more flexible. r=rhunt

Backed out for causing bustage on WasmFeatures.h

[task 2021-11-24T18:35:46.908Z] 18:35:46     INFO -  In file included from Unified_cpp_dom_workers0.cpp:56:
[task 2021-11-24T18:35:46.908Z] 18:35:46    ERROR -  /builds/worker/checkouts/gecko/dom/workers/RuntimeService.cpp:285:58: error: too few arguments provided to function-like macro invocation
[task 2021-11-24T18:35:46.908Z] 18:35:46     INFO -            JS_FOR_WASM_FEATURES(WASM_FEATURE, WASM_FEATURE)
[task 2021-11-24T18:35:46.908Z] 18:35:46     INFO -                                                           ^
[task 2021-11-24T18:35:46.908Z] 18:35:46     INFO -  /builds/worker/workspace/obj-build/dist/include/js/WasmFeatures.h:100:9: note: macro 'JS_FOR_WASM_FEATURES' defined here
[task 2021-11-24T18:35:46.908Z] 18:35:46     INFO -  #define JS_FOR_WASM_FEATURES(DEFAULT, TENTATIVE, EXPERIMENTAL)                \
[task 2021-11-24T18:35:46.908Z] 18:35:46     INFO -          ^
[task 2021-11-24T18:35:46.909Z] 18:35:46     INFO -  1 error generated.
[task 2021-11-24T18:35:46.909Z] 18:35:46    ERROR -  gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:662: Unified_cpp_dom_workers0.o] Error 1
[task 2021-11-24T18:35:46.909Z] 18:35:46     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/workers'
[task 2021-11-24T18:35:46.909Z] 18:35:46     INFO -  gmake[4]: *** Waiting for unfinished jobs....
[task 2021-11-24T18:35:46.909Z] 18:35:46     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/editor/txmgr'
[task 2021-11-24T18:35:46.909Z] 18:35:46     INFO -  mkdir -p '.deps/'
Flags: needinfo?(lhansen)

Yeah, missed one use, sorry about that.

Flags: needinfo?(lhansen)
Pushed by lhansen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6b634741402b
Make WasmFeatures more flexible. r=rhunt
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 96 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: