diff --git a/text5.txt b/text5.txt index 497d1e0..1b6d83a 100644 --- a/text5.txt +++ b/text5.txt @@ -7077,3 +7077,108 @@ Guard initial m98m99 staging paths 其中 `06-error-mixed-sub-styles` 有 4 个 `.ngc`,仍已在 Node/browser 分别执行; 本批只做 direct file staged path 与 fixed manifest 对账,不扩大到 blocked runtime。 + +七十五、2026-06-13 继续执行记录:m98m99 mixed direct-file staging path guard + +本轮继续拆 `tests/interp/m98m99`,仍保持小批量 direct file staging guard。当前 +host 仍按 blocked runtime 规则处理,不执行任何 `ENABLE_*_RUNTIME_PROBE=1` +opt-in native probe。 + +1. 候选选择。 + +选择上一节建议的第二小批: + +- `m98m99/04-M98-but-no-sub/test.ngc` +- `m98m99/05-M98-loops/test.ngc` +- `m98m99/06-error-mixed-sub-styles/O...-called-with-O..._call.ngc` +- `m98m99/06-error-mixed-sub-styles/O...-ended-with-O..._endsub.ngc` +- `m98m99/06-error-mixed-sub-styles/O...-sub-called-with-M98.ngc` +- `m98m99/06-error-mixed-sub-styles/O...-sub-ended-with-M99.ngc` + +这些 case 已在 Node/browser 单独执行,不需要 INI/HAL/task/tool DB/Python +remap/user-M process runtime。本轮只固定 direct file staged path 与既有 +fixed `.ngc` manifest 第 4 到第 9 项的一致性,不新增 CNC 语义。 + +2. 覆盖对账。 + +`tests/interp/m98m99` 当前 upstream `.ngc` manifest 已由既有 fixed list 覆盖, +本轮新增对账的 manifest slice 为: + +```text +04-M98-but-no-sub/test.ngc +05-M98-loops/test.ngc +06-error-mixed-sub-styles/O...-called-with-O..._call.ngc +06-error-mixed-sub-styles/O...-ended-with-O..._endsub.ngc +06-error-mixed-sub-styles/O...-sub-called-with-M98.ngc +06-error-mixed-sub-styles/O...-sub-ended-with-M99.ngc +``` + +3. 更新。 + +更新: + +- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` +- `wasm-port/tests/browser/interp_smoke.html` + +Node 新增: + +- 收集 `06-error-mixed-sub-styles` 循环中 4 个 + `writeInterpRegressionFile(...)` 返回的 staged path; +- 与 `04`、`05` 的 staged path 一起检查,确保实际 path 与 + `m98m99RegressionFiles.slice(3, 9)` 推导出的 `/work/interp/m98m99/...` + path 一致。 + +Browser 新增: + +- 收集 browser `06-error-mixed-sub-styles` 循环中 4 个 staged path; +- 与 `04`、`05` 的 staged path 一起去掉 `/work/browser-interp/m98m99/` + 前缀; +- 检查结果与 `m98m99RegressionFiles.slice(3, 9)` 一致; +- 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 mixed m98m99 staging paths +``` + +提交后继续拆 `m98m99`,下一小批建议选择: + +```text +07-nested-subs/test.ngc +08-sub-follows-main/test.ngc +09-disable-fanuc-subs/test-fanuc.ngc +09-disable-fanuc-subs/test-rs274ngc.ngc +``` + +其中 `09-disable-fanuc-subs` 用 `writeInterpRegressionFiles(...)` staging 同一目录 +下两个 `.ngc` 和两个 `.ini`。本批仍只做 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 b674431..446ddb2 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -7697,6 +7697,7 @@ ].join("\n"), ); + const m98m99MixedSubStylePaths = []; for (const mixedSubStyleFixture of [ { name: "called_with_o_call", @@ -7746,6 +7747,7 @@ "m98m99/06-error-mixed-sub-styles", mixedSubStyleFixture.file, ); + m98m99MixedSubStylePaths.push(mixedSubStylePath); const mixedSubStyleRun = runWithCapturedPrints(() => interp.runFile(mixedSubStylePath), ); @@ -7772,6 +7774,14 @@ ); } } + const m98m99MixedStagedNgcFiles = [ + m98m99M98ButNoSubPath, + m98m99M98LoopsPath, + ...m98m99MixedSubStylePaths, + ].map((path) => path.replace("/work/browser-interp/m98m99/", "")); + if (m98m99MixedStagedNgcFiles.join(",") !== m98m99RegressionFiles.slice(3, 9).join(",")) { + throw new Error("browser_interp_m98m99_mixed_staging_manifest: list drift"); + } const m98m99NestedSubsPath = await writeInterpRegressionFile( interp, diff --git a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs index 026252d..8e10ff8 100644 --- a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs +++ b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs @@ -2605,6 +2605,7 @@ verifyExpectedOutput( ].join("\n"), ); +const m98m99MixedSubStylePaths = []; for (const mixedSubStyleFixture of [ { name: "called_with_o_call", @@ -2653,6 +2654,7 @@ for (const mixedSubStyleFixture of [ "m98m99/06-error-mixed-sub-styles", mixedSubStyleFixture.file, ); + m98m99MixedSubStylePaths.push(mixedSubStylePath); const mixedSubStyleRun = runWithCapturedPrints(() => interp.runFile(mixedSubStylePath)); verifyExpectedOutput( `interp_m98m99_06_${mixedSubStyleFixture.name}_wasm`, @@ -2677,6 +2679,17 @@ for (const mixedSubStyleFixture of [ ); } } +assert.deepEqual( + [ + m98m99M98ButNoSubPath, + m98m99M98LoopsPath, + ...m98m99MixedSubStylePaths, + ], + m98m99RegressionFiles + .slice(3, 9) + .map((file) => `/work/interp/m98m99/${file}`), + "interp m98m99 mixed direct-file staging manifest drift", +); const m98m99NestedSubsPath = writeInterpRegressionFile("m98m99/07-nested-subs", "test.ngc"); const m98m99NestedSubsRun = runWithCapturedPrints(() => interp.runFile(m98m99NestedSubsPath));