结论:build-wasm.sh 现在与 native/source-link 一样先运行六分组 source-map guards,再消费生成配置别名和浏览器 artifacts;同步 build/workstreams source map 与 aggregate 元检查。未新增 CNC 行为,未扩展 smoke fallback。\n\n测试:./check-linuxcnc-workstreams-source-map.sh;./check-linuxcnc-build-source-map.sh;git diff --check;CNC_SIM_ALL_NATIVE_GUARDRAILS_ONLY=1 ./test-all-native.sh;./test-native.sh;./test-linuxcnc-source-link.sh。
3.1 KiB
3.1 KiB
LinuxCNC build source map
This map records the source basis and boundaries for native, source-link, and WASM build entry points. It is a build-policy guard only; it must not add CNC behavior and must not expand the temporary smoke parser.
LinuxCNC Source Basis
src/emc/rs274ngc/SubmakefiledefinesLIBRS274SRCS, includingrs274ngc_pre.cc, and links RS274 against LinuxCNC INI, HAL, Python plugin, and tooldata libraries.src/emc/tooldata/Submakefiledefines the LinuxCNC tooldata common, mmap, NML, database, reader, and watcher sources tracked by native and WASM manifests.src/emc/ini/Submakefiledefinesliblinuxcnciniand exported INI headers used by source-linked and WASM-safe probes.src/emc/pythonplugin/Submakefiledefineslibpyplugin, which remains a source-tracked Python/remap dependency for source-link and WASM blocker coverage.src/emc/kinematics/Submakefileandsrc/emc/kinematics/kinematics.hdefine the kinematics source/header surface consumed by switchkins and RTCP build coverage.
Build Coverage
| Entry | Boundary |
|---|---|
test-native.sh |
Runs source-map guards, cached manifest checks, native bridge/API/RS274 probes, and Node/browser smoke after LinuxCNC source-backed native coverage. |
test-linuxcnc-source-link.sh |
Compiles manifest-selected LinuxCNC RS274 objects directly with source-link support objects and project dump bridges. |
test-linuxcnc-source-syntax.sh |
Keeps native source syntax validation on persistent dependency-tracked stamps. |
test-linuxcnc-wasm-cmake-safe-probe.sh |
Configures source-backed WASM-safe probe targets with persistent CMake signatures. |
build-wasm.sh |
Runs source-map guards, blocker, syntax, object, CMake, tooldata, interp, Python, rs274ngc_pre, and runtime probes before copying browser artifacts. |
Boundaries
- Default WASM manifest partition must remain 26 wasm-safe
coresources and 9blockedsources. - Build paths must keep
CNC_SIM_BUILD_JOBSas scheduling only. Persistent object/configure signatures must not include it. - Hot object probes must use explicit
BUILD_RULE_VERSIONorCONFIGURE_RULE_VERSIONfields instead of hashing whole scripts. build-wasm.shmust configure withCNC_SIM_ENABLE_SMOKE_BACKEND=OFFandCNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE=ON.build-wasm.shmust run the same source-map guards as native and source-link entry points before consuming generated config aliases or browser artifacts.build-wasm.shmust buildcnc_sim_wasm_runtime_probebeforecnc_sim_wasm, copycnc_sim.jsandcnc_sim.wasmexactly once, compare copied artifacts withcmp -s, and run Node smoke before browser smoke.- Build directory overrides must be non-empty, whitespace-free, and outside the filesystem root.
Checks
Run:
./check-linuxcnc-build-source-map.sh
./test-native.sh
./test-linuxcnc-source-link.sh
check-linuxcnc-build-source-map.sh keeps this document, LinuxCNC build-source
anchors, manifest partition assumptions, build script ordering, and
source-backed build-policy boundaries synchronized.