参考所有分组,完成尽量多的内容。禁止顺手扩功能 smoke

结论:补齐 LinuxCNC tooldata 源映射 guard,并接入 native/source-link/workstreams 检查;仅验证源覆盖、WASM-safe shim/probe 边界和 TOOL_TABLE source-only 策略,未扩展 smoke 行为。\n\n测试:./check-linuxcnc-tooldata-source-map.sh;./check-linuxcnc-workstreams-source-map.sh;git diff --check;./test-native.sh;./test-linuxcnc-source-link.sh。
This commit is contained in:
cnc
2026-06-04 18:07:35 +08:00
parent 1f314b7e9e
commit 340966b6f7
7 changed files with 210 additions and 2 deletions

View File

@@ -0,0 +1,60 @@
# LinuxCNC tooldata source map
This map records the source basis and boundaries for LinuxCNC tooldata coverage
in native, source-link, switchkins, and WASM-safe build paths. It is a
source-link/shim guard only; it must not add CNC behavior and must not expand the temporary smoke parser.
## LinuxCNC Source Basis
- `src/emc/tooldata/Submakefile` selects `tooldata_mmap.cc` or
`tooldata_nml.cc`, and always includes `tooldata_common.cc`,
`tooldata_db.cc`, and `tool_watch.cc`.
- `src/emc/tooldata/tooldata_common.cc` provides tool table parsing,
formatting, load/save, and database-mode entry points.
- `src/emc/tooldata/tooldata_mmap.cc` provides native mmap tool table storage.
- `src/emc/tooldata/tooldata_nml.cc` provides the NML tool table registration
backend selected by `TOOL_NML_FLAG`.
- `src/emc/tooldata/tooldata_db.cc` provides external database entry points.
- `src/emc/tooldata/tool_mmap_read.cc` and `src/emc/tooldata/tool_watch.cc` are
utility sources from the same LinuxCNC tooldata build metadata.
- `src/emc/tooldata/tooldata.hh` declares the tooldata API used by RS274 and
WASM-safe shims.
## Manifest And Shim Coverage
| Coverage | Boundary |
| --- | --- |
| `linuxcnc-rs274-source-files.txt` | Tracks the full LinuxCNC `src/emc/tooldata` source directory and `tooldata.hh`. |
| `linuxcnc-rs274-wasm-source-files.txt` | Links `tooldata_common.cc`, blocks native `tooldata_mmap.cc`, and records runtime shim source bases for `tooldata_db.cc` and `tooldata_nml.cc`. |
| `linuxcnc-kinematics-source-files.txt` | Tracks 10 LinuxCNC `TOOL_TABLE` files referenced by covered M428/M429/M430 INI sources as `tooldata` source coverage only. |
| `core/wasm_shims/tooldata/tooldata_mmap_backend.cc` | Adapts LinuxCNC `tooldata_mmap.cc` exports to WASM-safe in-memory storage. |
| `core/wasm_shims/tooldata/tooldata_runtime_stubs.cc` | Adapts LinuxCNC `tooldata_nml.cc` and `tooldata_db.cc` runtime entry points without native services. |
| `test-linuxcnc-wasm-tooldata-link.sh` | Links the wasm-safe tooldata shim against LinuxCNC tooldata runtime expectations. |
| `test-linuxcnc-wasm-tooldata-common-link.sh` | Links LinuxCNC `tooldata_common.cc` through the wasm-safe standalone probe. |
| `test-linuxcnc-wasm-tooldata-mmap-symbols.sh` | Compares wasm mmap backend exports with LinuxCNC `tooldata_mmap.cc`. |
| `test-linuxcnc-wasm-tooldata-runtime-symbols.sh` | Compares runtime stub exports with LinuxCNC `tooldata_db.cc` and `tooldata_nml.cc`. |
## Boundaries
- Tool table files referenced by switchkins INI files are source coverage only;
they must not become browser API fields or generated switchkins aliases.
- WASM-safe tooldata shims must preserve the LinuxCNC export surface checked by
symbol probes.
- Native and source-link paths must keep the full LinuxCNC `src/emc/tooldata`
source directory tracked in the native RS274 manifest.
- `build-wasm.sh` must run tooldata link and symbol probes before copying
browser artifacts.
## Checks
Run:
```bash
./check-linuxcnc-tooldata-source-map.sh
./test-native.sh
./test-linuxcnc-source-link.sh
```
`check-linuxcnc-tooldata-source-map.sh` keeps this document, LinuxCNC tooldata
source anchors, manifest coverage, WASM shim/probe boundaries, and switchkins
TOOL_TABLE source-only policy synchronized.