Phase 80/81 Implementation Summary: - Phase 80 (c61f4bc7): JoinIR 本線統一(代表 if/loop) - should_try_joinir_mainline() 等の SSOT ヘルパー実装 - NYASH_JOINIR_CORE=1 で JoinIR→MIR が既定に - Phase 81 (a9e10d2a): selfhost Strict + Fail-Fast - selfhost_build.sh に --core/--strict オプション追加 - 環境変数自動伝播(NYASH_JOINIR_CORE/STRICT) - Phase 82 (93f51e40): JOINIR_TARGETS SSOT 化 - is_loop_lowered_function() テーブル参照統一 Documentation Updates: - docs/private/roadmap2/phases/phase-80-joinir-mainline/README.md - Section 80-2: 実装完了マーク追加 - Section 80-5: commit hash 付きメモ更新 - docs/private/roadmap2/phases/phase-81-joinir-strict/README.md - Section 81-4: Done/TODO チェックボックス更新 - Section 81-4-A: selfhost_build.sh 統合実装詳細追加 - CURRENT_TASK.md - Phase 80/81 完了マーク追加(今後の優先タスク順) - Phase 82 次の焦点として明記 Next Focus: - Phase 82-if-phi-retire: if_phi.rs 削除準備開始
29 lines
1.0 KiB
Bash
29 lines
1.0 KiB
Bash
#!/bin/bash
|
||
# test_loopssa_breakfinder_slot.sh — LoopSSA/BreakFinder 「最小失敗 JSON」スロットテスト
|
||
#
|
||
# 目的:
|
||
# - lang/src/compiler/tests/loopssa_breakfinder_slot.hako を直接 VM で実行し、
|
||
# Program(JSON v0) スロットに貼り付けた JSON に対する LoopSSA.stabilize_merges
|
||
# の挙動を観測するよ。
|
||
# - Stage‑B 最小サンプルから抽出した「失敗する JSON v0」をここに貼っておけば、
|
||
# Stage‑B 全体を回さずに LoopSSA/BreakFinderBox 周辺だけを再現できる。
|
||
#
|
||
set -e
|
||
|
||
NYASH_BIN="${NYASH_BIN:-./target/release/hakorune}"
|
||
TEST_FILE="lang/src/compiler/tests/loopssa_breakfinder_slot.hako"
|
||
|
||
echo "=== LoopSSA BreakFinder Slot JSON Test ==="
|
||
echo "Test file: $TEST_FILE"
|
||
echo "Binary: $NYASH_BIN"
|
||
echo ""
|
||
|
||
# LoopSSA v2 の EXIT PHI を有効化して実行(BreakFinder/PhiInjector 経由)
|
||
HAKO_LOOPSSA_EXIT_PHI=1 \
|
||
NYASH_DISABLE_PLUGINS=1 NYASH_FEATURES=stage3 \
|
||
"$NYASH_BIN" --backend vm "$TEST_FILE" 2>&1
|
||
|
||
echo ""
|
||
echo "=== Test complete ==="
|
||
|