按规划持续工作
结论:WASM interpreter 已链接 vendored LinuxCNC interp_remap.cc,并通过 SDK C ABI 运行 vendored xyzac/xyzbc switchkins remap demo;Node/host/browser smoke 均通过,未新增 JavaScript M428/M429/M430 或运动学语义。
This commit is contained in:
@@ -107,7 +107,13 @@ and missing named-parameter lookup.
|
||||
It also writes selected G-code fixtures into the
|
||||
Emscripten filesystem through the SDK and runs them through LinuxCNC
|
||||
`Interp::open()`, `Interp::read()`, and `Interp::execute()` to validate the
|
||||
file execution path. The same Node smoke writes LinuxCNC-format parameter
|
||||
file execution path. It also writes the vendored LinuxCNC `xyzac-trt` and
|
||||
`xyzbc-trt` table-rotary-tilting sample machine INI, `remap_subs/*.ngc`, and
|
||||
`xyzac_switchkins.ngc`/`xyzbc_switchkins.ngc` demo files into the Emscripten
|
||||
filesystem, then validates the WASM C ABI/SDK path for vendored LinuxCNC
|
||||
`REMAP` parsing, O-word remap execution, `M68`/`M66` HAL synchronization, and
|
||||
file `open()`/`read()`/`execute()` completion without JavaScript M-code or
|
||||
kinematics semantics. The same Node smoke writes LinuxCNC-format parameter
|
||||
files into the Emscripten filesystem and validates vendored
|
||||
`Interp::restore_parameters()` and `Interp::save_parameters()`, including the
|
||||
saved parameter values, missing required numeric parameter defaulting, and the
|
||||
@@ -238,7 +244,7 @@ The validation fails if:
|
||||
| Harness | Purpose |
|
||||
| --- | --- |
|
||||
| `tests/wasm/node/verify_ini_wasm.sh` | Validates the browser-facing INI WASM module can be built from vendored LinuxCNC `inifile.cc`, loaded through the JS SDK in Node, and queried through the exported C ABI, including LinuxCNC-backed boolean conversion and machine-session file-name string lookup. |
|
||||
| `tests/wasm/node/verify_interp_wasm.sh` | Validates the initial interpreter-core WASM module can be built from vendored LinuxCNC interpreter source, loaded through the interpreter JS SDK, run the first fixture group through `Interp::execute()` and selected file fixtures through `Interp::open()`/`read()`/`execute()`, match the native canonical event plus required state readback fixtures, and run parameter-file restore/save through vendored LinuxCNC `Interp::restore_parameters()` and `Interp::save_parameters()`. |
|
||||
| `tests/wasm/node/verify_interp_wasm.sh` | Validates the interpreter-core WASM module can be built from vendored LinuxCNC interpreter/remap source, loaded through the interpreter JS SDK, run the first fixture group through `Interp::execute()` and selected file fixtures through `Interp::open()`/`read()`/`execute()`, match the native canonical event plus required state readback fixtures, run vendored `xyzac-trt`/`xyzbc-trt` switchkins remap demo files through the WASM C ABI/SDK path, and run parameter-file restore/save through vendored LinuxCNC `Interp::restore_parameters()` and `Interp::save_parameters()`. |
|
||||
| `tests/wasm/node/verify_tp_wasm.sh` | Validates a standalone trajectory-planner WASM module can be built from vendored LinuxCNC TP/TC/Ruckig support source, loaded in Node, and run the same linear, arc, and queued-line planner probe paths covered by the native TP harness. |
|
||||
| `tests/opfs/node/verify_file_service.sh` | Validates the host-owned OPFS text-file adapter, path model, session snapshot store including custom filenames and envelope/path rejection paths, machine file store, G-code text store including filename rejection paths, OPFS-to-WASM parameter/tool-table bridges, and grouped machine-session loading without moving file persistence, parameter semantics, or tool-table semantics into the WASM core. |
|
||||
| `tests/browser/verify_ini_panel_browser.sh` | Validates the INI SDK, INI/interpreter WASM module loading, LinuxCNC-backed INI machine-session file-name string lookup, OPFS text-file round trip, generic session snapshot round trip plus custom filename and envelope/path rejection paths, machine file text round trip, G-code text round trip plus filename rejection paths, and the INI panel UI's machine-session load with default OPFS parameter/tool-table file mapping, G-code run, and canonical-event display paths in a real browser runtime. |
|
||||
@@ -603,5 +609,6 @@ standalone remap descriptor path. It reads the vendored `xyzac-trt` and
|
||||
`xyzbc-trt` INI `REMAP` entries, resolves their `remap_subs/*.ngc` files
|
||||
through LinuxCNC `find_ngc_file()`, and validates the resulting
|
||||
`_setup.m_remapped` descriptors for `M428`, `M429`, and `M430`. Python
|
||||
callbacks, O-word remap execution, and HAL synchronization remain runtime
|
||||
boundaries.
|
||||
callbacks remain runtime boundaries. Native and WASM validation now execute
|
||||
the NGC remap/file paths through vendored LinuxCNC O-word dispatch and the
|
||||
standalone HAL adapter boundary.
|
||||
|
||||
@@ -806,13 +806,17 @@ Current five-axis switchkins status:
|
||||
`xyzac_switchkins.ngc`, `xyzbc_switchkins.ngc`,
|
||||
`xyzac_switchkins_test_1.ngc`, and `xyzac_switchkins_test_3.ngc` through
|
||||
LinuxCNC remap/file execution paths.
|
||||
7. The WASM interpreter core now links vendored `interp_remap.cc` plus the
|
||||
Python-only runtime edge stub, and the Node WASM smoke runs vendored
|
||||
`xyzac_switchkins.ngc` and `xyzbc_switchkins.ngc` through the SDK C ABI
|
||||
without JavaScript M-code or kinematics semantics.
|
||||
|
||||
Next work:
|
||||
|
||||
1. Export the validated switchkins/remap status through the WASM SDK and INI
|
||||
panel without adding JavaScript CNC semantics.
|
||||
2. Add browser/Node smoke coverage that runs the vendored 5-axis remap demo
|
||||
fixtures through the WASM interpreter boundary.
|
||||
1. Add browser smoke/UI exposure for the validated switchkins/remap status
|
||||
without adding JavaScript CNC semantics.
|
||||
2. Continue broadening five-axis fixture coverage after the browser path is
|
||||
stable.
|
||||
|
||||
Involved LinuxCNC source:
|
||||
|
||||
|
||||
@@ -74,10 +74,10 @@ Current validation is intentionally mechanical:
|
||||
dual-rotary, and table-rotary-tilting LinuxCNC sample machines. NGC remap
|
||||
descriptors for the TRT sample machines are parsed through vendored
|
||||
`Interp::parse_remap()` and `find_ngc_file()` by
|
||||
`linuxcnc_remap_parse_harness`. Full standalone execution still needs
|
||||
LinuxCNC O-word remap dispatch, the `M68`/`M66` synchronization path, and
|
||||
`_hal[motion.switchkins-type]` readback connected through the standalone HAL
|
||||
boundary.
|
||||
`linuxcnc_remap_parse_harness`; native and WASM Node validation execute the
|
||||
selected TRT switchkins demo files through vendored LinuxCNC O-word remap
|
||||
dispatch, file `open()`/`read()`/`execute()`, and the standalone HAL adapter
|
||||
boundary for `M68`/`M66` plus `_hal[motion.switchkins-type]` readback.
|
||||
- Cutter compensation positive motion and negative interpreter paths are
|
||||
fixture-covered through vendored `interp_convert.cc` and `interp_queue.cc`.
|
||||
- Browser/WASM C ABI and JS SDK layers are now present for the INI parser, the
|
||||
|
||||
Reference in New Issue
Block a user