Guard m98m99 mixed-sub-style staging
This commit is contained in:
46
text6.txt
46
text6.txt
@@ -1116,3 +1116,49 @@ wasm-port/tests/host/verify_host_smokes.sh
|
||||
`writeInterpRegressionFile(...)` families,例如 `bad`、`good`、`g71/g72` 或
|
||||
`rotation` 的 aggregate direct-file guard。继续避免 blocked runtime promotion、
|
||||
browser full inventory 扩面和 JS CNC 语义实现。
|
||||
|
||||
二十七、2026-06-13 继续执行记录:m98m99 mixed-sub-style staging guard
|
||||
|
||||
本批完成 m98m99 最后一个显性 aggregate slice 的收束,将
|
||||
`m98m99/06-error-mixed-sub-styles` 改为 fixed manifest 加 per-directory staged path
|
||||
guard。
|
||||
|
||||
完成内容:
|
||||
|
||||
- Node 侧新增 `m98m99MixedSubStyleFiles` fixed manifest,包含该目录 4 个 `.ngc`
|
||||
fixture;
|
||||
- Node 侧改用 `writeInterpRegressionFiles(...)` 一次 staging 该目录;
|
||||
- Node 侧复用 `assertInterpRegressionStaging(...)`,用 upstream vendored `.ngc`
|
||||
文件清单与 fixed manifest 精确对账;
|
||||
- Node 侧移除最后的 m98m99 mixed aggregate slice;
|
||||
- browser 侧新增同名 fixed manifest;
|
||||
- browser 侧复用 `assertInterpRegressionStaging(...)` 检查 duplicate-free 与 staged path;
|
||||
- browser 侧仍不枚举目录;
|
||||
- 仅整理 host/filesystem staging guard,不改变 mixed Fanuc/RS274NGC sub-style 错误语义。
|
||||
|
||||
已运行验证:
|
||||
|
||||
```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 direct-file 与目录级 staging guard 已基本收束。下一批建议转向其他
|
||||
`writeInterpRegressionFile(...)` aggregate direct-file family,小批量优先候选:
|
||||
|
||||
- `rotation/abs-pts`
|
||||
- `rotation/g28`
|
||||
- `rotation/g53`
|
||||
|
||||
这三个已有 Node/browser coverage 且属于同一 direct-file family,适合复用
|
||||
`assertInterpRegressionFileStaging(...)` 替换当前 rotation aggregate slice。继续避免
|
||||
blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。
|
||||
|
||||
@@ -7992,7 +7992,22 @@
|
||||
].join("\n"),
|
||||
);
|
||||
|
||||
const m98m99MixedSubStylePaths = [];
|
||||
const m98m99MixedSubStyleFiles = [
|
||||
"O...-called-with-O..._call.ngc",
|
||||
"O...-ended-with-O..._endsub.ngc",
|
||||
"O...-sub-called-with-M98.ngc",
|
||||
"O...-sub-ended-with-M99.ngc",
|
||||
];
|
||||
const m98m99MixedSubStyleDir = await writeInterpRegressionFiles(
|
||||
interp,
|
||||
"m98m99/06-error-mixed-sub-styles",
|
||||
m98m99MixedSubStyleFiles,
|
||||
);
|
||||
assertInterpRegressionStaging(
|
||||
"m98m99/06-error-mixed-sub-styles",
|
||||
m98m99MixedSubStyleFiles,
|
||||
m98m99MixedSubStyleDir,
|
||||
);
|
||||
for (const mixedSubStyleFixture of [
|
||||
{
|
||||
name: "called_with_o_call",
|
||||
@@ -8037,12 +8052,7 @@
|
||||
print: "X FANUC",
|
||||
},
|
||||
]) {
|
||||
const mixedSubStylePath = await writeInterpRegressionFile(
|
||||
interp,
|
||||
"m98m99/06-error-mixed-sub-styles",
|
||||
mixedSubStyleFixture.file,
|
||||
);
|
||||
m98m99MixedSubStylePaths.push(mixedSubStylePath);
|
||||
const mixedSubStylePath = `${m98m99MixedSubStyleDir}/${mixedSubStyleFixture.file}`;
|
||||
const mixedSubStyleRun = runWithCapturedPrints(() =>
|
||||
interp.runFile(mixedSubStylePath),
|
||||
);
|
||||
@@ -8069,12 +8079,6 @@
|
||||
);
|
||||
}
|
||||
}
|
||||
const m98m99MixedStagedNgcFiles = [
|
||||
...m98m99MixedSubStylePaths,
|
||||
].map((path) => path.replace("/work/browser-interp/m98m99/", ""));
|
||||
if (m98m99MixedStagedNgcFiles.join(",") !== m98m99RegressionFiles.slice(5, 9).join(",")) {
|
||||
throw new Error("browser_interp_m98m99_mixed_staging_manifest: list drift");
|
||||
}
|
||||
|
||||
const m98m99NestedSubsPath = await writeInterpRegressionFile(
|
||||
interp,
|
||||
|
||||
@@ -2977,7 +2977,21 @@ verifyExpectedOutput(
|
||||
].join("\n"),
|
||||
);
|
||||
|
||||
const m98m99MixedSubStylePaths = [];
|
||||
const m98m99MixedSubStyleFiles = [
|
||||
"O...-called-with-O..._call.ngc",
|
||||
"O...-ended-with-O..._endsub.ngc",
|
||||
"O...-sub-called-with-M98.ngc",
|
||||
"O...-sub-ended-with-M99.ngc",
|
||||
];
|
||||
const m98m99MixedSubStyleDir = writeInterpRegressionFiles(
|
||||
"m98m99/06-error-mixed-sub-styles",
|
||||
m98m99MixedSubStyleFiles,
|
||||
);
|
||||
assertInterpRegressionStaging(
|
||||
"m98m99/06-error-mixed-sub-styles",
|
||||
m98m99MixedSubStyleFiles,
|
||||
m98m99MixedSubStyleDir,
|
||||
);
|
||||
for (const mixedSubStyleFixture of [
|
||||
{
|
||||
name: "called_with_o_call",
|
||||
@@ -3022,11 +3036,7 @@ for (const mixedSubStyleFixture of [
|
||||
print: "X FANUC",
|
||||
},
|
||||
]) {
|
||||
const mixedSubStylePath = writeInterpRegressionFile(
|
||||
"m98m99/06-error-mixed-sub-styles",
|
||||
mixedSubStyleFixture.file,
|
||||
);
|
||||
m98m99MixedSubStylePaths.push(mixedSubStylePath);
|
||||
const mixedSubStylePath = `${m98m99MixedSubStyleDir}/${mixedSubStyleFixture.file}`;
|
||||
const mixedSubStyleRun = runWithCapturedPrints(() => interp.runFile(mixedSubStylePath));
|
||||
verifyExpectedOutput(
|
||||
`interp_m98m99_06_${mixedSubStyleFixture.name}_wasm`,
|
||||
@@ -3051,13 +3061,6 @@ for (const mixedSubStyleFixture of [
|
||||
);
|
||||
}
|
||||
}
|
||||
assert.deepEqual(
|
||||
m98m99MixedSubStylePaths,
|
||||
m98m99RegressionFiles
|
||||
.slice(5, 9)
|
||||
.map((file) => `/work/interp/m98m99/${file}`),
|
||||
"interp m98m99 mixed direct-file staging manifest drift",
|
||||
);
|
||||
|
||||
const m98m99NestedSubsPath = writeInterpRegressionFile("m98m99/07-nested-subs", "test.ngc");
|
||||
assertInterpRegressionFileStaging("m98m99/07-nested-subs", "test.ngc", m98m99NestedSubsPath);
|
||||
|
||||
Reference in New Issue
Block a user