将“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:
196
text30.txt
Normal file
196
text30.txt
Normal 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`。
|
||||
```
|
||||
Reference in New Issue
Block a user