WebAssembly 功能分階段和發布的檢查清單
本文件提供 V8 中 WebAssembly 功能分階段和發布的工程需求檢查清單。這些檢查清單旨在作為準則,可能並不適用於所有功能。實際的發布流程說明於 V8 發布流程 中。
分階段 #
何時對 WebAssembly 功能分階段 #
WebAssembly 功能的 分階段 定義其實作階段的結束。當下列檢查清單完成時,實作階段即完成
- V8 中的實作已完成。這包括
- TurboFan 中的實作(如果適用)
- Liftoff 中的實作(如果適用)
- 解釋器中的實作(如果適用)
- V8 中的測試可用
- 透過執行
tools/wasm/update-wasm-spec-tests.sh
將規格測試匯入 V8 - 所有現有的提案規格測試都通過。遺漏規格測試很遺憾,但應不會阻礙分階段。
請注意,標準化流程中功能提案的階段與 V8 中功能的分階段無關。然而,提案應大致穩定。
如何對 WebAssembly 功能分階段 #
- 在
src/wasm/wasm-feature-flags.h
中,將功能標記從FOREACH_WASM_EXPERIMENTAL_FEATURE_FLAG
巨集清單移至FOREACH_WASM_STAGING_FEATURE_FLAG
巨集清單。 - 在
tools/wasm/update-wasm-spec-tests.sh
中,將提案儲存庫名稱新增至儲存庫的repos
清單。 - 執行
tools/wasm/update-wasm-spec-tests.sh
以建立並上傳新提案的規格測試。 - 在
test/wasm-spec-tests/testcfg.py
中,將提案儲存庫名稱和功能標記新增至proposal_flags
清單。 - 在
test/wasm-js/testcfg.py
中,將提案儲存庫名稱和功能標記新增至proposal_flags
清單。
請參閱 類型反射的暫存 作為參考。
發布 #
WebAssembly 功能何時準備好發布 #
- 符合 V8 發布流程。
- 實作已涵蓋模糊測試器(如果適用)。
- 此功能已暫存數週以取得模糊測試器涵蓋範圍。
- 功能提案已 進入第 4 階段。
- 所有 規格測試 都通過。
- 符合 Chromium DevTools 新 WebAssembly 功能檢查清單。
如何發布 WebAssembly 功能 #
- 在
src/wasm/wasm-feature-flags.h
中,將功能標記從FOREACH_WASM_STAGING_FEATURE_FLAG
巨集清單移至FOREACH_WASM_SHIPPED_FEATURE_FLAG
巨集清單。- 請務必在 CL 上新增一個 blink CQ 機器人,以檢查啟用此功能所造成的 blink 網路測試 失敗(將此行新增至 CL 說明的頁尾:
Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel
)。
- 請務必在 CL 上新增一個 blink CQ 機器人,以檢查啟用此功能所造成的 blink 網路測試 失敗(將此行新增至 CL 說明的頁尾:
- 此外,請將
FOREACH_WASM_SHIPPED_FEATURE_FLAG
中的第三個參數變更為true
以預設啟用此功能。 - 設定提醒,在兩個里程碑後移除功能標記。