Make native TP oracle build reproducible

This commit is contained in:
2026-08-31 20:17:09 +08:00
parent 6015293ee9
commit bbdfad8364
2 changed files with 14 additions and 0 deletions

View File

@@ -5,6 +5,7 @@
当前 oracle 证据:`coverage/xyzac-native-tick-trace.report.json` 已由源 当前 oracle 证据:`coverage/xyzac-native-tick-trace.report.json` 已由源
`run-5axis-rtcp.sh` 产生连续 task-heartbeat tick;源 Python NML 扩展暴露 `run-5axis-rtcp.sh` 产生连续 task-heartbeat tick;源 Python NML 扩展暴露
`task_heartbeat`,并记录 XYZAC pose/joints、queue、current-line、速度和加速度。 `task_heartbeat`,并记录 XYZAC pose/joints、queue、current-line、速度和加速度。
干净 checkout 使用 `scripts/build_linuxcnc_native_oracle.sh` 应用并编译同一源 patch。
`scripts/compare_xyzac_native_wasm_tick_trace.py` 已接入同一 case 的 WASM trace, `scripts/compare_xyzac_native_wasm_tick_trace.py` 已接入同一 case 的 WASM trace,
当前首个差异保留为 `$.rows[1].exec_state`,因此不得把 TP-PARITY-01..08 写成 当前首个差异保留为 `$.rows[1].exec_state`,因此不得把 TP-PARITY-01..08 写成
数值 parity verified。 数值 parity verified。

View File

@@ -0,0 +1,13 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
SOURCE_ROOT="${ROOT}/linuxcnc"
PATCH_FILE="${ROOT}/patches/linuxcnc/0001-export-native-task-heartbeat.patch"
if ! rg -q 'task_heartbeat' "${SOURCE_ROOT}/src/emc/usr_intf/axis/extensions/emcmodule.cc"; then
patch --forward --batch -p1 -d "${SOURCE_ROOT}" < "${PATCH_FILE}"
fi
make -C "${SOURCE_ROOT}/src" ../lib/python/linuxcnc.so ../bin/milltask
printf '%s\n' 'LinuxCNC native oracle build ready: source linuxcnc.so + milltask'