按建议继续完成后续工作

结论:upstream rs274 side-by-side 基线已从简单 parser/conversion fixture 扩展到 motion、offset、feed-control、comment/logging、numbered parameter、spindle orient、file finish 和 tool reload 等稳定 canonical 事件;完整 native 验证已通过。
This commit is contained in:
2026-06-07 22:44:17 +08:00
parent 7a20531ae4
commit 40f8103c94
4 changed files with 278 additions and 14 deletions

View File

@@ -25,7 +25,7 @@ The native validation script runs these checks in order:
3. `tools/verify_no_standalone_cnc_semantics.sh`
Confirms standalone code has not reintroduced `Interp::convert_g()`.
4. `tools/verify_native_linuxcnc_fixture_baseline.sh`
Runs a narrow side-by-side fixture baseline through upstream
Runs a side-by-side fixture baseline through upstream
`../linuxcnc/bin/rs274` and compares normalized canonical events for
fixtures that do not require standalone-only runtime adapters.
5. `tools/build_native_probes.sh`
@@ -108,8 +108,9 @@ Current validation is native-only. WASM, browser, SDK, OPFS, and full
machine-session validation remain future work.
The current fixture expectations validate standalone behavior against both the
vendored LinuxCNC source path and a first upstream `rs274` side-by-side
baseline for simple parser/conversion fixtures. Fixtures that depend on
vendored LinuxCNC source path and an upstream `rs274` side-by-side baseline for
parser/conversion, offsets, feed-control, comment/logging, numbered-parameter,
spindle-orient, file-finish, and tool-reload fixtures. Fixtures that depend on
standalone-only runtime adapters, HAL/INI/tool table setup, or richer machine
session state still need dedicated native LinuxCNC baselines.

View File

@@ -66,9 +66,10 @@ semantic rewrites:
now have standalone interpreter fixture coverage through vendored LinuxCNC
source.
- Fixture expectations are checked against the standalone vendored source
path. A first upstream `rs274` side-by-side baseline now covers simple
parser/conversion fixtures; adapter-heavy fixtures still need dedicated
native LinuxCNC baselines.
path. The upstream `rs274` side-by-side baseline now covers simple motion,
offsets, feed-control, comment/logging, numbered-parameter, spindle-orient,
file-finish, and tool-reload fixtures; adapter-heavy fixtures still need
dedicated native LinuxCNC baselines.
## Current Drift Conclusion

View File

@@ -502,12 +502,13 @@ Current verified progress:
and `LOGCLOSE`. `tests/fixtures/gcode/comment_logging.ngc` and
`tests/fixtures/canon/comment_logging.events` pin LinuxCNC comment logging
dispatch without adding standalone comment semantics.
- `tools/verify_native_linuxcnc_fixture_baseline.sh` now runs a first
- `tools/verify_native_linuxcnc_fixture_baseline.sh` now runs an expanded
side-by-side baseline against upstream `../linuxcnc/bin/rs274`. It normalizes
native LinuxCNC canonical output for simple parser/conversion fixtures
(`minimal_linear`, `length_units`, `plane_selection`, and
`modal_incremental`) and compares it with the standalone fixture events,
without introducing a project-authored CNC semantics oracle.
native LinuxCNC canonical output for simple motion, offsets, feed-control,
comment/logging, numbered-parameter, spindle-orient, file-finish, and
tool-reload fixtures, filters native output to the event classes each
standalone fixture explicitly expects, and compares the result without
introducing a project-authored CNC semantics oracle.
- `tests/fixtures/gcode_errors/g1_zero_feed.ngc` and
`tests/fixtures/canon_errors/g1_zero_feed.expected` pin the negative
`G1` zero-feed case. The source basis is LinuxCNC