按建议继续完成后续工作

结论:upstream rs274 side-by-side 基线已继续扩展到 file-open reset 和 O-word subroutine fixture;完整 native 验证已通过。
This commit is contained in:
2026-06-07 22:48:01 +08:00
parent 40f8103c94
commit fc3dd447e9
4 changed files with 19 additions and 7 deletions

View File

@@ -110,9 +110,10 @@ machine-session validation remain future work.
The current fixture expectations validate standalone behavior against both the The current fixture expectations validate standalone behavior against both the
vendored LinuxCNC source path and an upstream `rs274` side-by-side baseline for vendored LinuxCNC source path and an upstream `rs274` side-by-side baseline for
parser/conversion, offsets, feed-control, comment/logging, numbered-parameter, parser/conversion, offsets, feed-control, comment/logging, numbered-parameter,
spindle-orient, file-finish, and tool-reload fixtures. Fixtures that depend on spindle-orient, file-open reset, file-finish, tool-reload, and O-word
standalone-only runtime adapters, HAL/INI/tool table setup, or richer machine subroutine fixtures. Fixtures that depend on standalone-only runtime adapters,
session state still need dedicated native LinuxCNC baselines. HAL/INI/tool table setup, or richer machine session state still need dedicated
native LinuxCNC baselines.
The kinematics probes currently cover LinuxCNC identity/trivial kinematics, The kinematics probes currently cover LinuxCNC identity/trivial kinematics,
the switchable `5axiskins` XYZBCW bridge-mill model, and the TRT `xyzac`/`xyzbc` the switchable `5axiskins` XYZBCW bridge-mill model, and the TRT `xyzac`/`xyzbc`

View File

@@ -68,8 +68,8 @@ semantic rewrites:
- Fixture expectations are checked against the standalone vendored source - Fixture expectations are checked against the standalone vendored source
path. The upstream `rs274` side-by-side baseline now covers simple motion, path. The upstream `rs274` side-by-side baseline now covers simple motion,
offsets, feed-control, comment/logging, numbered-parameter, spindle-orient, offsets, feed-control, comment/logging, numbered-parameter, spindle-orient,
file-finish, and tool-reload fixtures; adapter-heavy fixtures still need file-open reset, file-finish, tool-reload, and O-word subroutine fixtures;
dedicated native LinuxCNC baselines. adapter-heavy fixtures still need dedicated native LinuxCNC baselines.
## Current Drift Conclusion ## Current Drift Conclusion

View File

@@ -506,7 +506,8 @@ Current verified progress:
side-by-side baseline against upstream `../linuxcnc/bin/rs274`. It normalizes side-by-side baseline against upstream `../linuxcnc/bin/rs274`. It normalizes
native LinuxCNC canonical output for simple motion, offsets, feed-control, native LinuxCNC canonical output for simple motion, offsets, feed-control,
comment/logging, numbered-parameter, spindle-orient, file-finish, and comment/logging, numbered-parameter, spindle-orient, file-finish, and
tool-reload fixtures, filters native output to the event classes each tool-reload fixtures. It now also includes file-open reset and O-word
subroutine fixture coverage, filters native output to the event classes each
standalone fixture explicitly expects, and compares the result without standalone fixture explicitly expects, and compares the result without
introducing a project-authored CNC semantics oracle. introducing a project-authored CNC semantics oracle.
- `tests/fixtures/gcode_errors/g1_zero_feed.ngc` and - `tests/fixtures/gcode_errors/g1_zero_feed.ngc` and

View File

@@ -12,11 +12,13 @@ FIXTURES=(
coordinate_offsets coordinate_offsets
cutter_comp_motion cutter_comp_motion
feed_control_modes feed_control_modes
file_open_reset
g53_machine_coordinates g53_machine_coordinates
length_units length_units
plane_selection plane_selection
modal_incremental modal_incremental
numbered_params numbered_params
oword_subroutine
percent_file_finish percent_file_finish
position_params position_params
spindle_orient spindle_orient
@@ -37,10 +39,15 @@ normalize_standalone_events() {
return sprintf("%.12g", value + 0) return sprintf("%.12g", value + 0)
} }
/^canon_event=/ { /^canon_event=/ || /^(STRAIGHT_(TRAVERSE|FEED)|SET_FEED_RATE) / {
line = $0 line = $0
sub(/^canon_event=/, "", line) sub(/^canon_event=/, "", line)
if (line == "ON_RESET") {
print line
next
}
if (line ~ /^COMMENT: /) { if (line ~ /^COMMENT: /) {
sub(/^COMMENT: /, "", line) sub(/^COMMENT: /, "", line)
print "COMMENT|" line print "COMMENT|" line
@@ -228,6 +235,9 @@ normalize_upstream_rs274_output() {
sub(/^[[:space:]]*[0-9]+[[:space:]]+N\.\.\.\.\.[[:space:]]+/, "", line) sub(/^[[:space:]]*[0-9]+[[:space:]]+N\.\.\.\.\.[[:space:]]+/, "", line)
if (line == "ON_RESET()") { if (line == "ON_RESET()") {
if (!seen_reset) {
print "ON_RESET"
}
seen_reset = 1 seen_reset = 1
next next
} }