Guard m98m99 named-program staging

This commit is contained in:
2026-06-13 08:41:48 +08:00
parent 2bb0cf9904
commit 8ff0fe25d4
3 changed files with 76 additions and 30 deletions

View File

@@ -977,3 +977,46 @@ wasm-port/tests/host/verify_host_smokes.sh
同时保留 `m98m99/14-o-expression-call` direct-file slice guard如继续小批量 同时保留 `m98m99/14-o-expression-call` direct-file slice guard如继续小批量
也可处理 `m98m99/09`、`11` 后续文档索引。继续避免 blocked runtime promotion、 也可处理 `m98m99/09`、`11` 后续文档索引。继续避免 blocked runtime promotion、
browser full inventory 扩面和 JS CNC 语义实现。 browser full inventory 扩面和 JS CNC 语义实现。
二十四、2026-06-13 继续执行记录m98m99 named-program staging guard
本批继续复用 `assertInterpRegressionStaging(...)`,把
`m98m99/13-named-program` 从 final aggregate direct-file guard 中拆成
per-directory staged path guard同时保留 `m98m99/14-o-expression-call` 的
direct-file slice guard。
完成内容:
- Node 侧将 `13-named-program` 的 `test-named.ngc` 与 `test-numbered.ngc` 提成
fixed manifest
- Node 侧用 upstream vendored `.ngc` 文件清单与 fixed manifest 精确对账;
- Node 侧检查 staged path 与 `/work/interp/m98m99/13-named-program/...` 一致;
- Node 侧将 final direct-file slice 收缩为只覆盖 `14-o-expression-call/test.ngc`
- browser 侧新增同名 fixed manifest guard
- browser 侧检查 staged path 去掉
`/work/browser-interp/m98m99/13-named-program/` 前缀后与 fixed manifest 一致;
- browser 侧仍不枚举目录;
- 仅整理 host/filesystem staging guard不改变 named-program 或 o-expression call
语义。
已运行验证:
```bash
git diff --check
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
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_sim_configs_inventory_wasm.sh
wasm-port/tests/host/verify_host_smokes.sh
```
结果:全部通过。
下一步建议:
m98m99 目录级 staged path guard 已基本收束。下一批建议扫描 `writeInterpRegressionFile(...)`
的剩余单文件 direct-file guard优先选择仍由 aggregate slice 间接覆盖的短小 case
把它们改成局部 fixed path guard如果继续保持小步提交可从 `g10` 之后的
direct-file families 或 `writeInterpRegressionFiles(...)` 其他调用点继续收敛。仍不推进
blocked runtime promotion、browser full inventory 扩面或 JS CNC 语义实现。

View File

@@ -8373,14 +8373,23 @@
); );
} }
const m98m99NamedProgramNamedPath = await writeInterpRegressionFile( const m98m99NamedProgramFiles = [
"test-named.ngc",
"test-numbered.ngc",
];
const m98m99NamedProgramDir = await writeInterpRegressionFiles(
interp, interp,
"m98m99/13-named-program", "m98m99/13-named-program",
"test-named.ngc", m98m99NamedProgramFiles,
);
assertInterpRegressionStaging(
"m98m99/13-named-program",
m98m99NamedProgramFiles,
m98m99NamedProgramDir,
); );
verifyExpectedOutput( verifyExpectedOutput(
"browser_interp_m98m99_13_named_program_named", "browser_interp_m98m99_13_named_program_named",
interp.runFile(m98m99NamedProgramNamedPath), interp.runFile(`${m98m99NamedProgramDir}/test-named.ngc`),
[ [
"file_open=0", "file_open=0",
"file_read_count=4", "file_read_count=4",
@@ -8392,14 +8401,9 @@
].join("\n"), ].join("\n"),
); );
const m98m99NamedProgramNumberedPath = await writeInterpRegressionFile(
interp,
"m98m99/13-named-program",
"test-numbered.ngc",
);
verifyExpectedOutput( verifyExpectedOutput(
"browser_interp_m98m99_13_named_program_numbered", "browser_interp_m98m99_13_named_program_numbered",
interp.runFile(m98m99NamedProgramNumberedPath), interp.runFile(`${m98m99NamedProgramDir}/test-numbered.ngc`),
[ [
"file_open=0", "file_open=0",
"file_read_count=4", "file_read_count=4",
@@ -8416,12 +8420,10 @@
"m98m99/14-o-expression-call", "m98m99/14-o-expression-call",
"test.ngc", "test.ngc",
); );
const m98m99FinalStagedNgcFiles = [ const m98m99OExpressionCallStagedNgcFiles = [m98m99OExpressionCallPath].map((path) =>
m98m99NamedProgramNamedPath, path.replace("/work/browser-interp/m98m99/", ""),
m98m99NamedProgramNumberedPath, );
m98m99OExpressionCallPath, if (m98m99OExpressionCallStagedNgcFiles.join(",") !== m98m99RegressionFiles.slice(23, 24).join(",")) {
].map((path) => path.replace("/work/browser-interp/m98m99/", ""));
if (m98m99FinalStagedNgcFiles.join(",") !== m98m99RegressionFiles.slice(21, 24).join(",")) {
throw new Error("browser_interp_m98m99_final_staging_manifest: list drift"); throw new Error("browser_interp_m98m99_final_staging_manifest: list drift");
} }
const m98m99OExpressionCallRun = runWithCapturedPrints(() => const m98m99OExpressionCallRun = runWithCapturedPrints(() =>

View File

@@ -3352,13 +3352,22 @@ for (const mainProgramErrorFixture of [
); );
} }
const m98m99NamedProgramNamedPath = writeInterpRegressionFile( const m98m99NamedProgramFiles = [
"m98m99/13-named-program",
"test-named.ngc", "test-named.ngc",
"test-numbered.ngc",
];
const m98m99NamedProgramDir = writeInterpRegressionFiles(
"m98m99/13-named-program",
m98m99NamedProgramFiles,
);
assertInterpRegressionStaging(
"m98m99/13-named-program",
m98m99NamedProgramFiles,
m98m99NamedProgramDir,
); );
verifyExpectedOutput( verifyExpectedOutput(
"interp_m98m99_13_named_program_named_wasm", "interp_m98m99_13_named_program_named_wasm",
interp.runFile(m98m99NamedProgramNamedPath), interp.runFile(`${m98m99NamedProgramDir}/test-named.ngc`),
[ [
"file_open=0", "file_open=0",
"file_read_count=4", "file_read_count=4",
@@ -3370,13 +3379,9 @@ verifyExpectedOutput(
].join("\n"), ].join("\n"),
); );
const m98m99NamedProgramNumberedPath = writeInterpRegressionFile(
"m98m99/13-named-program",
"test-numbered.ngc",
);
verifyExpectedOutput( verifyExpectedOutput(
"interp_m98m99_13_named_program_numbered_wasm", "interp_m98m99_13_named_program_numbered_wasm",
interp.runFile(m98m99NamedProgramNumberedPath), interp.runFile(`${m98m99NamedProgramDir}/test-numbered.ngc`),
[ [
"file_open=0", "file_open=0",
"file_read_count=4", "file_read_count=4",
@@ -3393,15 +3398,11 @@ const m98m99OExpressionCallPath = writeInterpRegressionFile(
"test.ngc", "test.ngc",
); );
assert.deepEqual( assert.deepEqual(
[ [m98m99OExpressionCallPath],
m98m99NamedProgramNamedPath,
m98m99NamedProgramNumberedPath,
m98m99OExpressionCallPath,
],
m98m99RegressionFiles m98m99RegressionFiles
.slice(21, 24) .slice(23, 24)
.map((file) => `/work/interp/m98m99/${file}`), .map((file) => `/work/interp/m98m99/${file}`),
"interp m98m99 final direct-file staging manifest drift", "interp m98m99 final o-expression direct-file staging manifest drift",
); );
const m98m99OExpressionCallRun = runWithCapturedPrints(() => const m98m99OExpressionCallRun = runWithCapturedPrints(() =>
interp.runFile(m98m99OExpressionCallPath), interp.runFile(m98m99OExpressionCallPath),