feat(joinir): Phase 213-2 Step 2-2 & 2-3 Data structure extensions
Extended PatternPipelineContext and CarrierUpdateInfo for Pattern 3 AST-based generalization. Changes: 1. PatternPipelineContext: - Added loop_condition: Option<ASTNode> - Added loop_body: Option<Vec<ASTNode>> - Added loop_update_summary: Option<LoopUpdateSummary> - Updated build_pattern_context() for Pattern 3 2. CarrierUpdateInfo: - Added then_expr: Option<ASTNode> - Added else_expr: Option<ASTNode> - Updated analyze_loop_updates() with None defaults Status: Phase 213-2 Steps 2-2 & 2-3 complete Next: Create Pattern3IfAnalyzer to extract if statement and populate update summary
This commit is contained in:
@ -38,12 +38,15 @@ if [[ ! -f "$INPUT" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BIN=${NYASH_BIN:-./target/release/hakorune}
|
||||
[[ -x "$BIN" ]] || BIN="./target/release/nyash"
|
||||
|
||||
if ! command -v llvm-config-18 >/dev/null 2>&1; then
|
||||
echo "error: llvm-config-18 not found (install LLVM 18 dev)." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
echo "[1/4] Building nyash (feature selectable) ..."
|
||||
echo "[1/4] Building hakorune (feature selectable) ..."
|
||||
# Select LLVM feature: default harness (llvm), or legacy inkwell when NYASH_LLVM_FEATURE=llvm-inkwell-legacy
|
||||
LLVM_FEATURE=${NYASH_LLVM_FEATURE:-llvm}
|
||||
# Use 24 threads for parallel build
|
||||
@ -74,7 +77,7 @@ if [[ "${NYASH_LLVM_SKIP_EMIT:-0}" != "1" ]]; then
|
||||
mkdir -p tmp
|
||||
NYASH_LLVM_MIR_JSON="tmp/nyash_crate_mir.json"
|
||||
echo " emitting MIR JSON: $NYASH_LLVM_MIR_JSON" >&2
|
||||
./target/release/nyash --emit-mir-json "$NYASH_LLVM_MIR_JSON" --backend mir "$INPUT" >/dev/null
|
||||
"$BIN" --emit-mir-json "$NYASH_LLVM_MIR_JSON" --backend mir "$INPUT" >/dev/null
|
||||
fi
|
||||
echo " using ny-llvmc (crate) with JSON: $NYASH_LLVM_MIR_JSON" >&2
|
||||
cargo build --release -p nyash-llvm-compiler >/dev/null
|
||||
@ -109,11 +112,11 @@ if [[ "${NYASH_LLVM_SKIP_EMIT:-0}" != "1" ]]; then
|
||||
# Legacy path: do not use harness (LLVM_SYS_180_PREFIX needed)
|
||||
_LLVMPREFIX=$(llvm-config-18 --prefix)
|
||||
NYASH_LLVM_OBJ_OUT="$OBJ" LLVM_SYS_181_PREFIX="${_LLVMPREFIX}" LLVM_SYS_180_PREFIX="${_LLVMPREFIX}" \
|
||||
./target/release/nyash --backend llvm "$INPUT" >/dev/null || true
|
||||
"$BIN" --backend llvm "$INPUT" >/dev/null || true
|
||||
else
|
||||
# Harness path (Python llvmlite - LLVM_SYS_180_PREFIX不要)
|
||||
NYASH_LLVM_OBJ_OUT="$OBJ" NYASH_LLVM_USE_HARNESS=1 \
|
||||
./target/release/nyash --backend llvm "$INPUT" >/dev/null || true
|
||||
"$BIN" --backend llvm "$INPUT" >/dev/null || true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user