From 15b98c3ecf191840e3e3afac581a060c0a052b42 Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sat, 20 Jun 2026 06:14:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E2=80=9Clinuxcnc=E2=80=9D=E7=A7=BB?= =?UTF-8?q?=E6=A4=8D=E5=88=B0=E6=95=B0=E6=8E=A7=E7=B3=BB=E7=BB=9F=E4=BB=BF?= =?UTF-8?q?=E7=9C=9F=E5=B7=A5=E4=BD=9C=EF=BC=8C=E6=98=AF=E5=90=A6=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E5=AE=8C=E6=88=90=EF=BC=9F=E6=95=B4=E7=90=86=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E7=BB=93=E8=AE=BA=E5=86=99=E5=85=A5=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E7=BB=AD=E6=96=87=E4=BB=B6=E4=B8=AD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:未全部完成。当前可视为 LinuxCNC-backed WASM/browser 数控仿真主路径阶段性完成,但不能视为 LinuxCNC 全量移植完成。剩余重点是 L4-USER-M-PROCESS=1 / axis/vismach/millturn/example.ngc,以及 ASSET-ONLY、NON_MAIN_CLASS、UPSTREAM-DEMO 等不能伪 promotion 的分类边界。 --- text30.txt | 196 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 text30.txt diff --git a/text30.txt b/text30.txt new file mode 100644 index 0000000..6362574 --- /dev/null +++ b/text30.txt @@ -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`。 +```