按推荐建议,继续执行
结论:记录 LinuxCNC 上游 commit 与本地构建/fixture 基线,新增 upstream baseline 验证并接入 native 验证,确保 vendored 源码同步绑定到明确的 LinuxCNC 源程序版本。
This commit is contained in:
@@ -493,6 +493,10 @@ Current verified progress:
|
|||||||
`vendor/linuxcnc/`. This keeps G-code group conversion on the vendored
|
`vendor/linuxcnc/`. This keeps G-code group conversion on the vendored
|
||||||
LinuxCNC `interp_convert.cc` path instead of allowing the wrapper layer to
|
LinuxCNC `interp_convert.cc` path instead of allowing the wrapper layer to
|
||||||
grow another project-authored conversion implementation.
|
grow another project-authored conversion implementation.
|
||||||
|
- `docs/scope-and-baseline.md` records the current upstream LinuxCNC commit,
|
||||||
|
local tool versions, and fixture baseline. `tools/verify_upstream_baseline.sh`
|
||||||
|
now runs before vendor sync validation so extraction drift is checked against
|
||||||
|
the intended upstream HEAD, not an accidental checkout change.
|
||||||
|
|
||||||
## Phase 4: Port INI Parsing Without Editing Upstream
|
## Phase 4: Port INI Parsing Without Editing Upstream
|
||||||
|
|
||||||
|
|||||||
64
wasm-port/docs/scope-and-baseline.md
Normal file
64
wasm-port/docs/scope-and-baseline.md
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# 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
|
||||||
|
- position parameters
|
||||||
|
- canned cycles
|
||||||
|
- coordinate offsets
|
||||||
|
- feed and motion control modes
|
||||||
|
- probe semantics
|
||||||
|
- spindle-synchronized threading and rigid tap
|
||||||
|
- NURBS G5 and G6
|
||||||
|
- spindle orient
|
||||||
|
- tool semantics and tool table setup
|
||||||
|
- named 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
|
||||||
|
- read-only named parameter writes
|
||||||
|
- read-only numbered parameter writes
|
||||||
|
- missing tool
|
||||||
|
- missing tool length offset
|
||||||
|
|
||||||
|
Machine baseline is still limited to standalone interpreter and trajectory
|
||||||
|
planner probes. Full 3-axis, non-trivial kinematics, and 5-axis machine
|
||||||
|
baselines remain future work.
|
||||||
@@ -9,6 +9,7 @@ GCODE_ERROR_FIXTURE_DIR="$ROOT_DIR/tests/fixtures/gcode_errors"
|
|||||||
CANON_ERROR_FIXTURE_DIR="$ROOT_DIR/tests/fixtures/canon_errors"
|
CANON_ERROR_FIXTURE_DIR="$ROOT_DIR/tests/fixtures/canon_errors"
|
||||||
NAMEDPARAM_INI_FIXTURE="$ROOT_DIR/tests/fixtures/ini/namedparams.ini"
|
NAMEDPARAM_INI_FIXTURE="$ROOT_DIR/tests/fixtures/ini/namedparams.ini"
|
||||||
|
|
||||||
|
"$ROOT_DIR/tools/verify_upstream_baseline.sh"
|
||||||
"$ROOT_DIR/tools/verify_vendor_sync.sh"
|
"$ROOT_DIR/tools/verify_vendor_sync.sh"
|
||||||
"$ROOT_DIR/tools/verify_no_standalone_cnc_semantics.sh"
|
"$ROOT_DIR/tools/verify_no_standalone_cnc_semantics.sh"
|
||||||
"$ROOT_DIR/tools/build_native_probes.sh"
|
"$ROOT_DIR/tools/build_native_probes.sh"
|
||||||
|
|||||||
1
wasm-port/tools/upstream-baseline.txt
Normal file
1
wasm-port/tools/upstream-baseline.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
60597ee0718873d2449058c824262a275e5e4bad
|
||||||
34
wasm-port/tools/verify_upstream_baseline.sh
Executable file
34
wasm-port/tools/verify_upstream_baseline.sh
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
|
UPSTREAM_DIR="$ROOT_DIR/../linuxcnc"
|
||||||
|
BASELINE_FILE="$ROOT_DIR/tools/upstream-baseline.txt"
|
||||||
|
|
||||||
|
if [[ ! -d "$UPSTREAM_DIR/.git" ]]; then
|
||||||
|
echo "missing upstream git repository: $UPSTREAM_DIR" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "$BASELINE_FILE" ]]; then
|
||||||
|
echo "missing upstream baseline file: $BASELINE_FILE" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
expected="$(sed -n '1p' "$BASELINE_FILE" | tr -d '[:space:]')"
|
||||||
|
actual="$(git -C "$UPSTREAM_DIR" rev-parse HEAD)"
|
||||||
|
|
||||||
|
if [[ -z "$expected" ]]; then
|
||||||
|
echo "empty upstream baseline file: $BASELINE_FILE" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$actual" != "$expected" ]]; then
|
||||||
|
echo "upstream baseline mismatch:" >&2
|
||||||
|
echo " expected: $expected" >&2
|
||||||
|
echo " actual: $actual" >&2
|
||||||
|
echo "Update tools/upstream-baseline.txt and docs/scope-and-baseline.md only after an intentional upstream sync." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "upstream baseline validation complete"
|
||||||
Reference in New Issue
Block a user