Files
hakorune/tools/llvm_smoke.sh

35 lines
1.1 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -euo pipefail
# LLVM Phase 11.2 smoke test
# - Builds nyash with LLVM backend
# - Compiles example via --backend llvm (object emission inside)
# - Verifies object file presence and non-zero size
MODE=${1:-release}
BIN=./target/${MODE}/nyash
OBJ=nyash_llvm_temp.o
if ! command -v llvm-config-18 >/dev/null 2>&1; then
echo "error: llvm-config-18 not found. Please install LLVM 18 dev packages." >&2
exit 2
fi
echo "[llvm-smoke] building nyash (${MODE}, feature=llvm)..." >&2
LLVM_SYS_180_PREFIX=$(llvm-config-18 --prefix) cargo build -q ${MODE:+--${MODE}} --features llvm
echo "[llvm-smoke] running --backend llvm on examples/llvm11_core_smoke.nyash ..." >&2
rm -f "$OBJ"
LLVM_SYS_180_PREFIX=$(llvm-config-18 --prefix) "$BIN" --backend llvm examples/llvm11_core_smoke.nyash >/dev/null || true
if [[ ! -f "$OBJ" ]]; then
echo "error: expected object not found: $OBJ" >&2
exit 1
fi
if [[ ! -s "$OBJ" ]]; then
echo "error: object is empty: $OBJ" >&2
exit 1
fi
echo "[llvm-smoke] OK: object generated: $OBJ ($(stat -c%s "$OBJ") bytes)" >&2