项目接续文件:LinuxCNC 移植到数控系统仿真工作的完成度结论 生成时间:2026-06-20 CST 本文件接替 `text29.txt`,用于回答: ```text 将 “linuxcnc” 移植到数控系统仿真工作,是否全部完成? ``` 一、总结论 ```text 没有全部完成。 ``` 更准确地说: ```text 当前已经完成了可交付的 WASM/browser 数控仿真主路径和大量 LinuxCNC-owned 语义 proof,包括 interpreter、INI、tool DB、Python remap、OPFS/session、 virtual HAL、浏览器仿真页面和 release gate 证据链。 但如果“全部完成”定义为完整移植 LinuxCNC 的全部 sim configs、外部进程模型、 UI 进程、native HAL module ABI、硬实时 motion/HAL 运行时和所有上游演示行为, 则仍未完成。 ``` 因此当前状态应记录为: ```text 阶段性可用 / 当前仿真主范围基本完成; 完整 LinuxCNC 全量移植未完成; 不得宣称 100% 完成。 ``` 二、当前已经完成的关键结果 1. Node/WASM sim-config inventory baseline 已提升到: ```text sim_configs_wasm_node_inventory_executed=82 sim_configs_wasm_node_inventory_passed=82 sim_configs_wasm_node_inventory_skipped=77 sim_configs_wasm_node_inventory_unexpected_fail=0 ``` 2. `L4-PYTHON-REMAP` 已从当前 skip summary 中清除。 ```text 53 个 Python-remap inventory rows 已完成: - row_runtime_transcript_ready=1; - native_pass_ready=1; - wasm_node_pass_ready=1; - browser_pass_ready=1; - baseline promotion 已进入 PASS=82 / SKIP=77。 ``` 对应最新记录见 `text29.txt`。 3. `L4-TOOL-DB` 已不再计入当前 skip summary。 `axis/db_demo/base.ngc` 的 tool DB proof chain 已完成接入,当前 `wasm-port/docs/sim-configs-coverage-handoff.md` 记录: ```text L4-TOOL-DB is no longer counted in the current skip summary ``` 4. 当前 skip summary 仍为: ```text ASSET-ONLY=65 L4-USER-M-PROCESS=1 NON_MAIN_CLASS=10 UPSTREAM-DEMO=1 ``` 这说明剩余 77 个 skipped rows 不再是 Python-remap / tool DB 批量阻塞。 5. 浏览器仿真主路径已具备可用能力: ```text - AXIS 风格 simulation UI; - LinuxCNC-backed interpreter WASM 执行; - canonical events / toolpath / playback; - OPFS/session persistence; - virtual HAL 状态和基础 halcmd/motion 仿真; - 多个 browser smoke / Node smoke / host gate 证据。 ``` 三、仍未完成或不能宣称完成的部分 1. `L4-USER-M-PROCESS` 的 Web/virtual HAL 仿真状态 proof 已完成,但 inventory promotion 仍未完成。 当前剩余 hard block: ```text path=axis/vismach/millturn/example.ngc ini=axis/vismach/millturn/millturn.ini blocked=L4-USER-M-PROCESS boundary_kind=external_user_m_process execution_enabled=0 promotion_allowed=0 notes=keep_blocked_until_m128_m129_state_proof ``` 该 row 依赖 M128 / M129 external user-M process 边界。当前 `runRealBrowserSimulation()` 已接入受控的 source-derived virtual HAL proof: ```text apiName=real-browser-simulation-millturn-user-m-process-proof M429 -> M129 -> turn M428 -> M128 -> mill motion.switchkins-type / motion.analog-out-03 kinstype.is-0 / kinstype.is-1 ini.x.* / ini.z.* limit pins ``` 但浏览器仍不承诺 arbitrary external process execution,且该 proof 不等于 sim-config inventory promotion。当前仍需要独占 LinuxCNC native runtime opt-in probe 达到: ```text millturn_user_m_runtime_probe_status=runtime_state_probe_passed ``` 之后才允许继续 Node inventory promotion gate、browser/host promotion proof 和 manual promotion lock review。 2. `ASSET-ONLY=65` 不代表可执行主程序未做完,而是资产/子程序类行。 这类 row 多为 remap subroutine、macro asset、辅助文件,不能被当作 standalone main program 直接执行,也不应为了降低 skip 数字而伪 promotion。 3. `NON_MAIN_CLASS=10` 仍是非主程序类别。 这类 row 需要继续保持分类边界,不能作为主程序执行完成度计算。 4. `UPSTREAM-DEMO=1` 仍是上游演示行为边界。 除非有 LinuxCNC-owned runtime proof 和明确 promotion gate,否则不能强行转 PASS。 5. 完整 LinuxCNC native runtime 没有被完整搬进浏览器。 以下仍不是当前项目已经完成的范围: ```text - Linux kernel hard-realtime ABI; - native HAL module ABI; - arbitrary external hardware driver ABI; - arbitrary LinuxCNC UI process emulation; - arbitrary external user-M executable process; - 完整 native milltask / halcmd / halrun / realtime process graph; - 全部上游 sim configs 的完整运行时等价。 ``` 四、应如何对外表述当前完成度 推荐表述: ```text LinuxCNC 到 WASM/browser 数控仿真的当前可交付主范围已经基本完成, 并且 inventory baseline 已提升到 PASS=82 / SKIP=77 / unexpected_fail=0。 核心 interpreter、INI、tool DB、Python remap、OPFS/session、virtual HAL 和 浏览器仿真页面已有 LinuxCNC-owned proof 链路。 但完整移植尚未全部完成。剩余明确边界包括 L4-USER-M-PROCESS=1,以及 ASSET-ONLY、NON_MAIN_CLASS、UPSTREAM_DEMO 等不能被当作可执行主程序直接 promotion 的分类。当前不得宣称 LinuxCNC 全量 100% 移植完成。 ``` 不推荐表述: ```text LinuxCNC 已全部移植完成。 全部 sim configs 已完成。 浏览器已完整替代 LinuxCNC native runtime。 external user-M process 已完成并已 promotion。 ``` 五、下一步建议 如果继续推进“全部完成”方向,优先顺序应为: ```text 1. 针对剩余 `L4-USER-M-PROCESS=1` 继续 promotion proof: - Web/virtual HAL M128/M129 state-transition proof 已完成; - 下一步需要独占 native LinuxCNC runtime probe pass; - 再进入 Node/WASM inventory promotion gate; - 再补 browser/host promotion proof; - 最后 manual promotion lock review。 2. 保持 `ASSET-ONLY` 和 `NON_MAIN_CLASS` 分类,不为降低 skip 数字而伪执行。 3. 若要继续减少 skip,只能逐 row 判断是否存在真实 main-program promotion path。 4. 更新旧的 tracker/文档中仍写 `L4-PYTHON-REMAP` 或 `L4-TOOL-DB` locked 的过期描述, 使它们与当前 PASS=82 / SKIP=77 baseline 对齐。 5. 在宣称当前范围完成前,重新运行项目 release gate: `wasm-port/tests/host/verify_project_release_gate.sh` ``` 六、本文件结论 ```text 结论:未全部完成。 当前可以视为“LinuxCNC-backed WASM/browser 数控仿真主路径阶段性完成”, 但不能视为“LinuxCNC 全量移植完成”。 下一轮若继续实质推进,应优先处理唯一剩余 inventory promotion hard runtime block: `L4-USER-M-PROCESS=1` / `axis/vismach/millturn/example.ngc`。 ```