跳到主要内容

本文档提供V8中阶段研发和发布WebAssembly特性时的工程需求检查清单。这些检查清单是作为指导原则的,可能不适用于所有特性。实际的发布流程详见V8发布流程

阶段研发

WebAssembly特性何时进入阶段研发

阶段研发定义了WebAssembly特性实现阶段的结束。当以下检查清单完成时,实现阶段就结束了:

  • V8中的实现已经完成。这包括:
    • 在TurboFan中的实现(如果适用)
    • 在Liftoff中的实现(如果适用)
    • 在解释器中的实现(如果适用)
  • V8中的测试可用
  • 通过运行tools/wasm/update-wasm-spec-tests.sh将规范测试导入V8
  • 所有现有提案的规范测试都通过了。缺少的规范测试虽遗憾,但不应阻止阶段研发。

请注意,特性提案在标准化过程中的阶段对在V8中进入阶段研发没有影响。但提案应该基本稳定。

如何将WebAssembly特性进入阶段研发

可参考类型反射的阶段研发实例

发布

WebAssembly特性何时准备好发布

如何发布WebAssembly特性

  • src/wasm/wasm-feature-flags.h中,将特性标志从FOREACH_WASM_STAGING_FEATURE_FLAG宏列表移至FOREACH_WASM_SHIPPED_FEATURE_FLAG宏列表。
    • 确保在相关代码更改中添加一个blink CQ机器人来检查由于启用特性而导致的blink网络测试失败(在描述底部添加此行:Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel)。
  • 此外,通过将FOREACH_WASM_SHIPPED_FEATURE_FLAG中的第三个参数更改为true来默认启用该特性。
  • 设置提醒在两个里程碑后删除特性标志。