将“linuxcnc”移植到数控系统仿真工作,是否全部完成?整理后,结论写入新的接续文件中。

结论:未全部完成。当前可视为 LinuxCNC-backed WASM/browser 数控仿真主路径阶段性完成,但不能视为 LinuxCNC 全量移植完成。剩余重点是 L4-USER-M-PROCESS=1 / axis/vismach/millturn/example.ngc,以及 ASSET-ONLY、NON_MAIN_CLASS、UPSTREAM-DEMO 等不能伪 promotion 的分类边界。
This commit is contained in:
2026-06-20 06:14:55 +08:00
parent b057f8038b
commit 15b98c3ecf

196
text30.txt Normal file
View File

@@ -0,0 +1,196 @@
项目接续文件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` 仍未完成。
当前剩余 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 边界。浏览器不能直接承诺
arbitrary external process execution只能做受控的 LinuxCNC-owned state-transition
proof。该 proof 尚未完成。
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 已完成。
```
五、下一步建议
如果继续推进“全部完成”方向,优先顺序应为:
```text
1. 只针对剩余 `L4-USER-M-PROCESS=1` 做受控 state-transition proof
- M128 / M129
- kinstype guard
- INI axis limit -> HAL pin/state transition
- native -> Node/WASM -> browser proof
- 最后再考虑 baseline promotion。
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 全量移植完成”。
下一轮若继续实质推进,应优先处理唯一剩余 hard runtime block
`L4-USER-M-PROCESS=1` / `axis/vismach/millturn/example.ngc`。
```