diff --git a/text6.txt b/text6.txt index e7bee02..f3643cc 100644 --- a/text6.txt +++ b/text6.txt @@ -1668,3 +1668,45 @@ wasm-port/tests/host/verify_host_smokes.sh 这三个当前仍存在类似 `plan.files -> sourceRel -> replace(...)` 的内联 staged path 对账,可继续复用 `assertInterpIniContextNgcStaging(...)` 小批量替换。继续避免 blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。 + +三十九、2026-06-13 继续执行记录:final INI-context ngc staging guard + +本批继续处理剩余 INI/context `.ngc` staging 内联对账: + +- `oword-unwind/test.ngc` +- `abort-hot-comment/test.ngc` +- `m19/test.ngc` + +完成内容: + +- Node 侧将 3 处内联 `plan.files -> sourceRel -> replace(...)` `.ngc` staging + 对账替换为 `assertInterpIniContextNgcStaging(...)`; +- browser 侧同步将 3 处内联 `.ngc` staged path 对账替换为同名 helper; +- Node/browser 侧保留 fixed `.ngc` manifest coverage 和 duplicate-free guard; +- browser 侧仍不枚举目录; +- 仅整理 host/filesystem staging guard,不改变 oword unwind、abort hot comment、 + M19 spindle orientation 或 interpreter 语义。 + +已运行验证: + +```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_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh +SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh +wasm-port/tests/host/verify_host_smokes.sh +``` + +结果:全部通过。 + +下一步建议: + +继续收敛最后可见的 fixed `.ngc` staged path 对账。优先候选: + +- `magic_comments/param_format_printing/test.ngc` + +当前 Node 侧已有 fixed path manifest 对账,browser 侧仍有本地数组 staged path 对账; +可小批量抽成 single-file 或 fixed-list helper,继续检查 staged path 与 manifest 一致。 +继续避免 blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。 diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index fb231a3..58d28fa 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -7603,14 +7603,11 @@ if (owordUnwindNgcFiles.length !== 2 || new Set(owordUnwindNgcFiles).size !== owordUnwindNgcFiles.length) { throw new Error("browser_interp_oword_unwind_fixture_coverage: list drift"); } - const owordUnwindStagedNgcFiles = owordUnwindPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/oword-unwind/", "")) - .sort(); - if (owordUnwindStagedNgcFiles.join(",") !== owordUnwindNgcFiles.join(",")) { - throw new Error("browser_interp_oword_unwind_staging_manifest: list drift"); - } + assertInterpIniContextNgcStaging( + "oword-unwind", + owordUnwindNgcFiles, + owordUnwindPlan, + ); verifyExpectedOutput( "browser_interp_oword_unwind", interp.runFileWithIniContinueOnError( @@ -7637,14 +7634,11 @@ if (abortHotCommentNgcFiles.length !== 1 || new Set(abortHotCommentNgcFiles).size !== abortHotCommentNgcFiles.length) { throw new Error("browser_interp_abort_hot_comment_fixture_coverage: list drift"); } - const abortHotCommentStagedNgcFiles = abortHotCommentPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/abort-hot-comment/", "")) - .sort(); - if (abortHotCommentStagedNgcFiles.join(",") !== abortHotCommentNgcFiles.join(",")) { - throw new Error("browser_interp_abort_hot_comment_staging_manifest: list drift"); - } + assertInterpIniContextNgcStaging( + "abort-hot-comment", + abortHotCommentNgcFiles, + abortHotCommentPlan, + ); verifyExpectedOutput( "browser_interp_abort_hot_comment", interp.runFileWithIniContinueOnError( @@ -7668,14 +7662,11 @@ if (m19NgcFiles.length !== 1 || new Set(m19NgcFiles).size !== m19NgcFiles.length) { throw new Error("browser_interp_m19_fixture_coverage: list drift"); } - const m19StagedNgcFiles = m19Plan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/m19/", "")) - .sort(); - if (m19StagedNgcFiles.join(",") !== m19NgcFiles.join(",")) { - throw new Error("browser_interp_m19_staging_manifest: list drift"); - } + assertInterpIniContextNgcStaging( + "m19", + m19NgcFiles, + m19Plan, + ); verifyExpectedOutput( "browser_interp_m19", interp.runFileWithIni(m19Plan.programPath, m19Plan.iniPath), diff --git a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs index 804aafe..bc84530 100644 --- a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs +++ b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs @@ -2579,14 +2579,10 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("oword-unwind"), "interp oword-unwind fixture coverage drift", ); -assert.deepEqual( - owordUnwindPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/oword-unwind/", "")) - .sort(), +assertInterpIniContextNgcStaging( + "oword-unwind", owordUnwindNgcFiles, - "interp oword-unwind staging manifest drift", + owordUnwindPlan, ); verifyExpectedOutput( "interp_oword_unwind_wasm", @@ -2616,14 +2612,10 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("abort-hot-comment"), "interp abort-hot-comment fixture coverage drift", ); -assert.deepEqual( - abortHotCommentPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/abort-hot-comment/", "")) - .sort(), +assertInterpIniContextNgcStaging( + "abort-hot-comment", abortHotCommentNgcFiles, - "interp abort-hot-comment staging manifest drift", + abortHotCommentPlan, ); verifyExpectedOutput( "interp_abort_hot_comment_wasm", @@ -2650,14 +2642,10 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("m19"), "interp m19 fixture coverage drift", ); -assert.deepEqual( - m19Plan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/m19/", "")) - .sort(), +assertInterpIniContextNgcStaging( + "m19", m19NgcFiles, - "interp m19 staging manifest drift", + m19Plan, ); verifyExpectedOutput( "interp_m19_wasm",