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` 或
|
`writeInterpRegressionFile(...)` families,例如 `bad`、`good`、`g71/g72` 或
|
||||||
`rotation` 的 aggregate direct-file guard。继续避免 blocked runtime promotion、
|
`rotation` 的 aggregate direct-file guard。继续避免 blocked runtime promotion、
|
||||||
browser full inventory 扩面和 JS CNC 语义实现。
|
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"),
|
].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 [
|
for (const mixedSubStyleFixture of [
|
||||||
{
|
{
|
||||||
name: "called_with_o_call",
|
name: "called_with_o_call",
|
||||||
@@ -8037,12 +8052,7 @@
|
|||||||
print: "X FANUC",
|
print: "X FANUC",
|
||||||
},
|
},
|
||||||
]) {
|
]) {
|
||||||
const mixedSubStylePath = await writeInterpRegressionFile(
|
const mixedSubStylePath = `${m98m99MixedSubStyleDir}/${mixedSubStyleFixture.file}`;
|
||||||
interp,
|
|
||||||
"m98m99/06-error-mixed-sub-styles",
|
|
||||||
mixedSubStyleFixture.file,
|
|
||||||
);
|
|
||||||
m98m99MixedSubStylePaths.push(mixedSubStylePath);
|
|
||||||
const mixedSubStyleRun = runWithCapturedPrints(() =>
|
const mixedSubStyleRun = runWithCapturedPrints(() =>
|
||||||
interp.runFile(mixedSubStylePath),
|
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(
|
const m98m99NestedSubsPath = await writeInterpRegressionFile(
|
||||||
interp,
|
interp,
|
||||||
|
|||||||
@@ -2977,7 +2977,21 @@ verifyExpectedOutput(
|
|||||||
].join("\n"),
|
].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 [
|
for (const mixedSubStyleFixture of [
|
||||||
{
|
{
|
||||||
name: "called_with_o_call",
|
name: "called_with_o_call",
|
||||||
@@ -3022,11 +3036,7 @@ for (const mixedSubStyleFixture of [
|
|||||||
print: "X FANUC",
|
print: "X FANUC",
|
||||||
},
|
},
|
||||||
]) {
|
]) {
|
||||||
const mixedSubStylePath = writeInterpRegressionFile(
|
const mixedSubStylePath = `${m98m99MixedSubStyleDir}/${mixedSubStyleFixture.file}`;
|
||||||
"m98m99/06-error-mixed-sub-styles",
|
|
||||||
mixedSubStyleFixture.file,
|
|
||||||
);
|
|
||||||
m98m99MixedSubStylePaths.push(mixedSubStylePath);
|
|
||||||
const mixedSubStyleRun = runWithCapturedPrints(() => interp.runFile(mixedSubStylePath));
|
const mixedSubStyleRun = runWithCapturedPrints(() => interp.runFile(mixedSubStylePath));
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
`interp_m98m99_06_${mixedSubStyleFixture.name}_wasm`,
|
`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");
|
const m98m99NestedSubsPath = writeInterpRegressionFile("m98m99/07-nested-subs", "test.ngc");
|
||||||
assertInterpRegressionFileStaging("m98m99/07-nested-subs", "test.ngc", m98m99NestedSubsPath);
|
assertInterpRegressionFileStaging("m98m99/07-nested-subs", "test.ngc", m98m99NestedSubsPath);
|
||||||
|
|||||||
Reference in New Issue
Block a user