按建议继续完成后续工作

结论:upstream rs274 side-by-side 基线已扩展到 NURBS G5/G6 调度边界;控制点细节仍由 standalone fixture 覆盖,完整 native 验证已通过。
This commit is contained in:
2026-06-07 23:00:05 +08:00
parent 55fcaf0267
commit f408d0b157
4 changed files with 36 additions and 11 deletions

View File

@@ -111,10 +111,11 @@ 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-open reset, file-finish, tool-reload, and O-word spindle-orient, file-open reset, file-finish, tool-reload, and O-word
subroutine fixtures, plus threading/rigid tap and the comparable canonical subroutine fixtures, plus threading/rigid tap, NURBS dispatch boundaries, and
runtime edge calls. Fixtures that depend on standalone-only runtime adapters, the comparable canonical runtime edge calls. Fixtures that depend on
HAL/INI/tool table setup, upstream `rs274` output gaps such as `WAIT`, or standalone-only runtime adapters, HAL/INI/tool table setup, upstream `rs274`
richer machine session state still need dedicated native LinuxCNC baselines. output gaps such as `WAIT` or hidden NURBS control-point detail, 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

@@ -69,9 +69,10 @@ semantic rewrites:
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-open reset, file-finish, tool-reload, and O-word subroutine fixtures; file-open reset, file-finish, tool-reload, and O-word subroutine fixtures;
it also covers threading/rigid tap and comparable canonical runtime edge it also covers threading/rigid tap, NURBS dispatch boundaries, and comparable
calls. Adapter-heavy fixtures and upstream `rs274` output gaps such as canonical runtime edge calls. Adapter-heavy fixtures and upstream `rs274`
`WAIT` still need dedicated native LinuxCNC baselines. output gaps such as `WAIT` or hidden NURBS control-point detail still need
dedicated native LinuxCNC baselines.
## Current Drift Conclusion ## Current Drift Conclusion

View File

@@ -507,10 +507,11 @@ Current verified progress:
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. It now also includes file-open reset and O-word tool-reload fixtures. It now also includes file-open reset and O-word
subroutine fixture coverage, threading/rigid tap coverage, plus comparable subroutine fixture coverage, threading/rigid tap coverage, NURBS dispatch
canonical runtime edge calls. Native output is filtered to the event classes boundary coverage, plus comparable canonical runtime edge calls. Native
each standalone fixture explicitly expects, while upstream `rs274` output output is filtered to the event classes each standalone fixture explicitly
gaps such as `WAIT` remain covered by the standalone harness rather than expects, while upstream `rs274` output gaps such as `WAIT` and hidden NURBS
control-point detail remain covered by the standalone harness rather than
being treated as side-by-side evidence. The comparison does not introduce a being treated as side-by-side evidence. The comparison does not introduce a
project-authored CNC semantics oracle. 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

@@ -19,6 +19,8 @@ FIXTURES=(
plane_selection plane_selection
modal_incremental modal_incremental
numbered_params numbered_params
nurbs_g5_semantics
nurbs_g6_semantics
oword_subroutine oword_subroutine
percent_file_finish percent_file_finish
position_params position_params
@@ -75,6 +77,16 @@ normalize_standalone_events() {
next next
} }
if (line ~ /^NURBS_G5_FEED /) {
print "NURBS_G5_FEED"
next
}
if (line ~ /^NURBS_G6_FEED /) {
print "NURBS_G6_FEED"
next
}
if (line == "MIST_ON" || line == "MIST_OFF" || line == "FLOOD_ON" || line == "FLOOD_OFF" || if (line == "MIST_ON" || line == "MIST_OFF" || line == "FLOOD_ON" || line == "FLOOD_OFF" ||
line == "ENABLE_FEED_OVERRIDE" || line == "DISABLE_FEED_OVERRIDE" || line == "ENABLE_FEED_OVERRIDE" || line == "DISABLE_FEED_OVERRIDE" ||
line == "DISABLE_ADAPTIVE_FEED" || line == "ENABLE_ADAPTIVE_FEED" || line == "DISABLE_ADAPTIVE_FEED" || line == "ENABLE_ADAPTIVE_FEED" ||
@@ -366,6 +378,11 @@ normalize_upstream_rs274_output() {
next next
} }
if (line ~ /^NURBS_G5_FEED\(/) {
print "NURBS_G5_FEED"
next
}
if (line ~ /^COMMENT\("/) { if (line ~ /^COMMENT\("/) {
value = args_of(line) value = args_of(line)
sub(/^"/, "", value) sub(/^"/, "", value)
@@ -585,6 +602,11 @@ normalize_upstream_rs274_output() {
next next
} }
} }
/^N\.\.\.\.\. saicanon NURBS_G6_FEED_/ && seen_reset {
print "NURBS_G6_FEED"
next
}
' '
} }