Cross-compile validation for aarch64-linux-gnu — the primary triple for NVIDIA Jetson Orin/Nano and Raspberry Pi 5 class boards. This is a CI-friendly smoke slice, not a full hardware benchmark suite.
Related: compiler-backend-roadmap.md · tier-3-golden-paths.md · hardware-compatibility.md
| Step | Command | Pass criteria |
|---|---|---|
| Type-check | spanda check hello_world.sd |
No diagnostics |
| LLVM IR | spanda llvm-ir --target-triple aarch64-unknown-linux-gnu |
.ll file emitted |
| Cross link (Linux CI only) | spanda compile-native --target-triple aarch64-unknown-linux-gnu |
Binary when aarch64-linux-gnu-gcc is installed |
The script always validates IR for the aarch64 triple. Native linking runs only on Linux when
aarch64-linux-gnu-gcc is present; macOS dev machines skip the link step after IR succeeds.
cargo build -p spanda-cli --release --features llvm
./scripts/llvm_embedded_golden_path.sh
./scripts/llvm_embedded_golden_path.sh examples/showcase/world_model_patrol.sd
Optional override:
SPANDA_BIN=target/release/spanda ./scripts/llvm_embedded_golden_path.sh
After copying a natively built binary to hardware (or building on-device with the same triple):
# On Jetson / Pi (Linux aarch64)
time ./hello_world_native
spanda run rover.sd --metrics-json # interpreter baseline for comparison
Record wall time and RSS for interpreter vs native when promoting LLVM from experimental to beta (compiler-backend-roadmap.md).
| Job | Script | Notes |
|---|---|---|
llvm-golden-path |
llvm_golden_path.sh | Host-native codegen |
llvm-embedded-golden-path |
llvm_embedded_golden_path.sh | aarch64 triple smoke |
--hal-profile jetson-orin and --hal-profile rpi5 will select conditional compilation flags once
HAL-backed codegen lands. Until then, use --target-triple only.