Files
hakorune/src/mir/builder/control_flow/joinir/legacy
tomoaki bfd324d7b9 feat(joinir): Phase 256 P1.5 - JoinInst::Select 命令サポート(根治)
## 変更内容

Task 1(既完了): boundary パラメータを bridge 経路全体に伝播
- conversion_pipeline.rs, bridge.rs(複数箇所), meta.rs, routing_legacy_binding.rs, execute_box.rs

Task 2-A~2-D: Select 命令の実装
- 2-A: MirInstruction::Select バリアント追加
- 2-B: JoinIR Select → MIR Select 直接変換(branch+phi展開廃止)
- 2-C:  joinir_id_remapper に Select remap case(ValueId変換の根治)
- 2-D: value_collector に Select case

## 根本原因解決

Pattern7 の JoinInst::Select が JoinIR→MIR で未対応
→ ValueId(1002) → ValueId(57) のリマップが行われず
→ "use of undefined value ValueId(57)" エラー

## 現在地

 cargo check: 0 errors
 Pattern7/6 VM test(Task 2-E LLVM実装後)

🧠 Generated with Claude Code
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-20 03:11:58 +09:00
..

Legacy JoinIR Routing

残す理由

  • 既存コードパスとの互換性維持: Pattern 1-4 の段階的移行中は legacy routing が必要
  • 段階的移行のための過渡期対応: Normalized shadow が全ケースをカバーするまでの橋渡し
  • 回帰テスト基盤: 既存の動作を保持しながら新しい routing を並行開発

撤去条件

以下の条件がすべて満たされたときに legacy routing を削除する:

  1. Normalized shadow が全ケースをカバー: Phase 131+ の normalized loop(true) パターンが完全に動作
  2. Pattern 1-4 が完全に安定: 既存のループパターンすべてが新 routing で動作
  3. 回帰テストが完全にカバー: 既存テストがすべて新 routing でパス
  4. 依存箇所がゼロ: routing.rs の fallback path が完全に削除済み

依存箇所

現在 legacy routing を使用している箇所:

  • routing.rs の fallback path: Pattern 1-4 が新 routing で処理できない場合の退避経路
  • テストケース: 一部のテストが legacy routing を前提としている可能性

移行ステップ(将来)

  1. Phase 132+: Pattern 1-4 の新 routing 完成
  2. Phase 135+: 回帰テスト全通過確認
  3. Phase 140+: routing.rs の fallback path 削除
  4. Phase 145+: legacy/ ディレクトリ削除

ファイル構成

  • routing_legacy_binding.rs: Legacy binding system既存コード
  • mod.rs: Module exportこのファイル
  • README.md: このファイル(削除条件・移行計画)