结论:将现有负向 G-code fixture 纳入 upstream rs274 -g side-by-side 基线,校验错误文本和 absent canonical 事件约束,继续保持解释器语义来源于 LinuxCNC。
2.3 KiB
Scope And Baseline
Upstream Source Baseline
The standalone port currently treats ../linuxcnc/ as the read-only upstream
source provider.
- Upstream repository:
../linuxcnc - Upstream branch at baseline:
master - Upstream commit:
60597ee0718873d2449058c824262a275e5e4bad - Upstream subject:
Merge pull request #4043 from grandixximo/docs-inkscape-rsvg-shim - Upstream author:
andypugh - Upstream commit date:
2026-05-19T15:26:50+01:00
The upstream working tree is allowed to contain unrelated local files, but the vendored-source validation is tied to the commit above. If upstream HEAD changes, re-run extraction intentionally and update this baseline in the same change.
Local Build Assumptions
- C++ compiler:
g++ (Debian 14.2.0-19) 14.2.0 - C compiler:
gcc (Debian 14.2.0-19) 14.2.0 - Python:
Python 3.13.5 - Node.js:
v20.19.2 - Emscripten:
emcc 3.1.69
Current Fixture Baseline
The native standalone validation currently uses the fixture set under
tests/fixtures/.
G-code fixture coverage includes:
- linear traverse and feed
- arc semantics
- modal incremental and absolute distance modes
- length unit switching
- plane selection
- position parameters
- canned cycles
- coordinate offsets
- G53 machine-coordinate motion
- feed and motion control modes
- cutter compensation motion
- probe semantics
- spindle-synchronized threading and rigid tap
- NURBS G5 and G6
- spindle orient
- tool semantics and tool table setup
- local, INI-backed named parameters and numbered parameters
- O-word subroutines
- program-end modal reset
- canonical runtime edge calls
Negative fixture coverage includes:
- zero-feed
G1 - arc radius mismatch
- zero-radius arc
- cutter compensation plane-change rejection
- G53 incremental-mode rejection
- read-only named parameter writes
- read-only numbered parameter writes
- missing tool
- missing tool length offset
The native baseline compares those negative fixtures with upstream
rs274 -g for expected error text and absent canonical-event constraints.
Machine baseline is still limited to standalone interpreter, trajectory
planner, LinuxCNC identity/trivial kinematics, LinuxCNC 5axiskins XYZBCW
bridge-mill probing, and LinuxCNC TRT xyzac/xyzbc probing. Additional
non-trivial kinematics and fuller machine baselines remain future work.