diff --git a/text5.txt b/text5.txt index 2e5dd82..497d1e0 100644 --- a/text5.txt +++ b/text5.txt @@ -6982,3 +6982,98 @@ Guard magic comments staging path 提交后继续下一小批已有 interpreter fixture 的 staging manifest guard。下一步可以 开始拆 `m98m99`,但不要一次性扩全量;优先选择其中已经在 Node/browser 单独执行、 且每个子目录只需 direct file staging 的小组,按 2 到 3 个子 case 一批推进。 + +七十四、2026-06-13 继续执行记录:m98m99 initial direct-file staging path guard + +本轮继续当前 host 可执行路线。当前 host 仍按 blocked runtime 规则处理,不执行 +任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 + +1. 候选选择。 + +开始拆 `tests/interp/m98m99`,但不一次性扩大 guard 范围。本轮只选择前三个 +已经在 Node/browser 单独执行、且每个子目录只需 direct file staging 的 case: + +- `m98m99/01-basics/test.ngc` +- `m98m99/02-variables/test.ngc` +- `m98m99/03-error-M98-no-P-word/test.ngc` + +这些 case 不需要 INI/HAL/task/tool DB/Python remap/user-M process runtime。本轮 +只固定 direct file staging path 与既有 fixed `.ngc` manifest 前三项的一致性, +不新增 CNC 语义。 + +2. 覆盖对账。 + +`tests/interp/m98m99` 当前 upstream `.ngc` manifest 已由既有 fixed list 覆盖, +本轮新增对账的前三项为: + +```text +01-basics/test.ngc +02-variables/test.ngc +03-error-M98-no-P-word/test.ngc +``` + +3. 更新。 + +更新: + +- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` +- `wasm-port/tests/browser/interp_smoke.html` + +Node 新增: + +- 在创建前三个 `writeInterpRegressionFile(...)` staged path 后,检查实际 path + 与 `m98m99RegressionFiles.slice(0, 3)` 推导出的 + `/work/interp/m98m99/...` path 一致。 + +Browser 新增: + +- 在创建前三个 browser staged path 后,去掉 + `/work/browser-interp/m98m99/` 前缀; +- 检查结果与 `m98m99RegressionFiles.slice(0, 3)` 一致; +- browser 仍不枚举目录。 + +4. 已执行验证。 + +```bash +git diff --check +wasm-port/tools/verify_vendor_sync.sh +wasm-port/tools/verify_no_standalone_cnc_semantics.sh +SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh +SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh +SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh +wasm-port/tests/host/verify_host_smokes.sh +``` + +结果: + +- `git diff --check` clean。 +- `vendor sync up to date` +- `standalone CNC semantics guard complete` +- `interp_wasm_node_smoke=ok` +- Node inventory 保持: + - `executed=28` + - `passed=28` + - `skipped=131` + - `unexpected_fail=0` +- `browser_interp_smoke=ok` +- `host_wasm_opfs_browser_smokes=ok` + +5. 下一步工作建议。 + +当前工作集已稳定。建议先做小提交,message: + +```text +Guard initial m98m99 staging paths +``` + +提交后继续拆 `m98m99`,下一小批建议选择: + +```text +04-M98-but-no-sub/test.ngc +05-M98-loops/test.ngc +06-error-mixed-sub-styles/*.ngc +``` + +其中 `06-error-mixed-sub-styles` 有 4 个 `.ngc`,仍已在 Node/browser 分别执行; +本批只做 direct file staged path 与 fixed manifest 对账,不扩大到 blocked +runtime。 diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index a994296..b674431 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -7621,6 +7621,14 @@ "m98m99/03-error-M98-no-P-word", "test.ngc", ); + const m98m99InitialStagedNgcFiles = [ + m98m99BasicsPath, + m98m99VariablesPath, + m98m99M98NoPWordPath, + ].map((path) => path.replace("/work/browser-interp/m98m99/", "")); + if (m98m99InitialStagedNgcFiles.join(",") !== m98m99RegressionFiles.slice(0, 3).join(",")) { + throw new Error("browser_interp_m98m99_initial_staging_manifest: list drift"); + } verifyExpectedOutput( "browser_interp_m98m99_03_error_m98_no_p_word", interp.runFile(m98m99M98NoPWordPath), diff --git a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs index 097a5b6..026252d 100644 --- a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs +++ b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs @@ -2533,6 +2533,17 @@ const m98m99M98NoPWordPath = writeInterpRegressionFile( "m98m99/03-error-M98-no-P-word", "test.ngc", ); +assert.deepEqual( + [ + m98m99BasicsPath, + m98m99VariablesPath, + m98m99M98NoPWordPath, + ], + m98m99RegressionFiles + .slice(0, 3) + .map((file) => `/work/interp/m98m99/${file}`), + "interp m98m99 initial direct-file staging manifest drift", +); verifyExpectedOutput( "interp_m98m99_03_error_m98_no_p_word_wasm", interp.runFile(m98m99M98NoPWordPath),