Dieses Dokument bietet Checklisten mit technischen Anforderungen für das Staging und den Versand von WebAssembly-Funktionen in V8. Diese Checklisten dienen als Leitfaden und sind möglicherweise nicht auf alle Funktionen anwendbar. Der eigentliche Launch-Prozess wird im V8 Launch-Prozess beschrieben.
Staging
Wann eine WebAssembly-Funktion gestaged werden sollte
Das Staging einer WebAssembly-Funktion markiert das Ende ihrer Implementierungsphase. Die Implementierungsphase ist abgeschlossen, wenn die folgende Checkliste erfüllt ist:
- Die Implementierung in V8 ist abgeschlossen. Dies umfasst:
- Implementierung in TurboFan (falls zutreffend)
- Implementierung in Liftoff (falls zutreffend)
- Implementierung im Interpreter (falls zutreffend)
- Tests in V8 sind verfügbar
- Spezifikationstests werden in V8 durch Ausführung von
tools/wasm/update-wasm-spec-tests.sh
eingepflegt - Alle bestehenden Spezifikationstests für Vorschläge bestehen. Fehlende Spezifikationstests sind bedauerlich, sollten das Staging jedoch nicht blockieren.
Beachten Sie, dass die Stufe des Funktionsvorschlags im Standardisierungsprozess für das Staging der Funktion in V8 nicht relevant ist. Der Vorschlag sollte jedoch größtenteils stabil sein.
Wie man eine WebAssembly-Funktion staged
- Bewegen Sie in
src/wasm/wasm-feature-flags.h
das Funktionsflag von der MakrolisteFOREACH_WASM_EXPERIMENTAL_FEATURE_FLAG
zur MakrolisteFOREACH_WASM_STAGING_FEATURE_FLAG
. - Fügen Sie in
tools/wasm/update-wasm-spec-tests.sh
den Namen des Vorschlags-Repositories zurrepos
-Liste von Repositories hinzu. - Führen Sie
tools/wasm/update-wasm-spec-tests.sh
aus, um die Spezifikationstests des neuen Vorschlags zu erstellen und hochzuladen. - Fügen Sie in
test/wasm-spec-tests/testcfg.py
den Namen des Vorschlags-Repositories und das Funktionsflag zurproposal_flags
-Liste hinzu. - Fügen Sie in
test/wasm-js/testcfg.py
den Namen des Vorschlags-Repositories und das Funktionsflag zurproposal_flags
-Liste hinzu.
Siehe das Staging der Typreflektion als Referenz.
Versand
Wann ist eine WebAssembly-Funktion bereit zum Versand
- Der V8 Launch-Prozess ist erfüllt.
- Die Implementierung wird durch ein Fuzzing-Tool abgedeckt (falls zutreffend).
- Die Funktion wurde mehrere Wochen lang gestaged, um eine Abdeckung durch Fuzzing-Tests zu erreichen.
- Der Vorschlag der Funktion ist Stufe 4.
- Alle Spezifikationstests bestehen.
- Die Chromium DevTools-Checkliste für neue WebAssembly-Funktionen ist erfüllt.
Wie man eine WebAssembly-Funktion verschickt
- Bewegen Sie in
src/wasm/wasm-feature-flags.h
das Funktionsflag von der MakrolisteFOREACH_WASM_STAGING_FEATURE_FLAG
zur MakrolisteFOREACH_WASM_SHIPPED_FEATURE_FLAG
.- Stellen Sie sicher, dass Sie ein Blink-CQ-Bot im CL hinzufügen, um Blink Web-Tests auf Fehler zu überprüfen, die durch die Aktivierung der Funktion verursacht wurden (fügen Sie diese Zeile zum Fußtext der CL-Beschreibung hinzu:
Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel
).
- Stellen Sie sicher, dass Sie ein Blink-CQ-Bot im CL hinzufügen, um Blink Web-Tests auf Fehler zu überprüfen, die durch die Aktivierung der Funktion verursacht wurden (fügen Sie diese Zeile zum Fußtext der CL-Beschreibung hinzu:
- Aktivieren Sie außerdem die Funktion standardmäßig, indem Sie den dritten Parameter in
FOREACH_WASM_SHIPPED_FEATURE_FLAG
auftrue
ändern. - Setzen Sie eine Erinnerung, um das Funktionsflag nach zwei Meilensteinen zu entfernen.