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
73 lines
1.9 KiB
Bash
73 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# Phase 188 Task 188-1: Collect [joinir/freeze] error inventory
|
|
# Run loop tests with JoinIR-only configuration (no LoopBuilder fallback)
|
|
|
|
set -e
|
|
|
|
HAKORUNE_BIN="./target/release/hakorune"
|
|
|
|
# Check if hakorune binary exists
|
|
if [ ! -f "$HAKORUNE_BIN" ]; then
|
|
echo "Error: $HAKORUNE_BIN not found. Run 'cargo build --release' first."
|
|
exit 1
|
|
fi
|
|
|
|
# JoinIR-only configuration (JoinIR は常時 ON、NYASH_JOINIR_CORE は deprecated/no-op)
|
|
export NYASH_LEGACY_LOOPBUILDER=0
|
|
export NYASH_DISABLE_PLUGINS=1
|
|
|
|
# Test files
|
|
TEST_FILES=(
|
|
"apps/tests/joinir_if_merge_multiple.hako"
|
|
"apps/tests/joinir_if_merge_simple.hako"
|
|
"apps/tests/joinir_if_select_local.hako"
|
|
"apps/tests/joinir_if_select_simple.hako"
|
|
"apps/tests/joinir_min_loop.hako"
|
|
"apps/tests/loop_if_phi.hako"
|
|
"apps/tests/loop_if_phi_continue.hako"
|
|
"apps/tests/loop_min_while.hako"
|
|
"apps/tests/loop_phi_one_sided.hako"
|
|
)
|
|
|
|
echo "=========================================="
|
|
echo "Phase 188 Task 188-1: JoinIR Error Inventory"
|
|
echo "Configuration:"
|
|
echo " NYASH_LEGACY_LOOPBUILDER=0"
|
|
echo " NYASH_DISABLE_PLUGINS=1"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
TOTAL=0
|
|
FAILED=0
|
|
PASSED=0
|
|
|
|
for test_file in "${TEST_FILES[@]}"; do
|
|
TOTAL=$((TOTAL + 1))
|
|
echo "----------------------------------------"
|
|
echo "[$TOTAL] Testing: $test_file"
|
|
echo "----------------------------------------"
|
|
|
|
if [ ! -f "$test_file" ]; then
|
|
echo "SKIP: File not found"
|
|
echo ""
|
|
continue
|
|
fi
|
|
|
|
# Run test and capture both stdout and stderr
|
|
if "$HAKORUNE_BIN" "$test_file" 2>&1; then
|
|
echo "PASS"
|
|
PASSED=$((PASSED + 1))
|
|
else
|
|
echo "FAIL (exit code: $?)"
|
|
FAILED=$((FAILED + 1))
|
|
fi
|
|
echo ""
|
|
done
|
|
|
|
echo "=========================================="
|
|
echo "Summary:"
|
|
echo " Total: $TOTAL"
|
|
echo " Passed: $PASSED"
|
|
echo " Failed: $FAILED"
|
|
echo "=========================================="
|