chore: Update docs/private submodule and CURRENT_TASK (Phase 61-5)
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -157,18 +157,38 @@
|
||||
- ConservativeMerge struct 定義と付随テストコードを削除し、挙動差分がないことを phi_core / JoinIR テストで確認。
|
||||
- Phase 61-1〜61-3 では If-in-loop 専用の箱化を進め、JoinIR 側に PHI 生成の SSOT を寄せた。
|
||||
- IfPhiContext でループ内 If の CFG と変数スナップショットをまとめ、IfInLoopPhiEmitter で pre/then/else の snapshot と carrier 集合から必要な φ を構成する thin box を追加。
|
||||
- dev フラグ `HAKO_JOINIR_IF_IN_LOOP_ENABLE=1` 有効時には、JoinIR パターンマッチ成功した if-in-loop について JoinIR + IfPhiContext + IfInLoopPhiEmitter 経由で PHI を生成できるようになった(Route A/B 互換、既定はまだ legacy)。
|
||||
- JoinIR/phi_core 関連テストは全て PASS。既知の `local` キーワード問題を除き、新たな退行はなし。
|
||||
- dev フラグ `HAKO_JOINIR_IF_IN_LOOP_ENABLE=1` 有効時には、JoinIR パターンマッチ成功した if-in-loop について JoinIR + IfPhiContext + IfInLoopPhiEmitter 経路で PHI を生成できるようになった(Route A/B 互換、既定はまだ legacy)。
|
||||
- Phase 61-4: **If Toplevel PHI (Fallthrough-Join) 実装** ✅ 完了(2025-11-29)
|
||||
- ループ外 If の「then 直後に結合点がない」パターン(toplevel_return)を JoinIR で表現。
|
||||
- IfInLoopPhiEmitter が IfPhiContext::pure_if() でループ外 If もサポート(統一インターフェース)。
|
||||
- `toplevel_if_ret_explicit.hako` テストで toplevel_return パターン動作確認済み。
|
||||
- docs: `docs/development/current/main/phase61-4-toplevel-if-design.md`
|
||||
- Phase 61-5: **If PHI 削減計画策定** ✅ 完了(2025-11-29)
|
||||
- 61-5.1: If PHI 関数リスト作成(26関数、3カテゴリ)
|
||||
- 61-5.2: JoinIR カバレッジ調査(in_loop/partial/none)
|
||||
- 61-5.3: 優先度表作成(P1: 18関数、P2: 5関数、P3: 3関数)
|
||||
- 61-5.4: Phase 61-6 候補選定(3個: set_if_context, dev フラグ, A/B テスト削除)
|
||||
- docs: `docs/development/current/main/phase61-5-*.md`
|
||||
- Phase P1: **If Handler 箱化モジュール化** ✅ 完了(2025-11-29)
|
||||
- ループ内 If 処理の 5 パターン(Empty/SingleVarThen/SingleVarBoth/ConditionalEffect/Unsupported)を `IfInLoopPattern` enum で分類。
|
||||
- `if_in_loop/` モジュール(9 ファイル、~480 行)を新設し、`stmt_handlers.rs` から 154 行削減(40% 削減達成)。
|
||||
- 全 56 JoinIR tests PASS(回帰なし)、保守性・拡張性向上(新パターン追加が容易に)。
|
||||
- docs: `docs/development/refactoring/p1-if-handler-boxification-plan.md`
|
||||
- JoinIR/phi_core 関連テストは全て PASS。既知の `local` キーワード問題を除き、新たな退行はなし。
|
||||
|
||||
---
|
||||
|
||||
## 2. 中期 TODO(ざっくり)
|
||||
|
||||
- **Phase 61-6: If PHI JoinIR 化 第2弾(薄いラッパー削除)** 🎯 次のタスク
|
||||
- 61-6.1: P1 薄いラッパー削除(26行削減見込み)
|
||||
- `set_if_context` 削除: loop_builder/if_lowering.rs で直接 IfPhiContext 生成に置き換え(11行)
|
||||
- If Lowering dev フラグ削除: `joinir_if_select_enabled()` チェック削除、デフォルト有効化(15行)
|
||||
- 61-6.2: P2 A/B テスト観察関数削除(50行削減見込み)
|
||||
- `extract_phi_spec_from_builder`, `compare_and_log_phi_specs` 削除
|
||||
- if_lowering.rs の A/B 比較ロジック削除
|
||||
- 期待削減: 合計 76行、JoinIR SSOT 確立
|
||||
- docs: `docs/development/current/main/phase61-5.4-next-phase-candidates.md`
|
||||
- **Phase 42: PHI Workaround 条件付きスキップ** ✅ 完了(2025-11-28)
|
||||
- ✅ 42-1: PHI workaround 内容の文書化完了(README.md に記録)
|
||||
- ✅ 42-2: `parser_control_box.hako:85-139` に条件付きスキップ実装
|
||||
@ -183,6 +203,10 @@
|
||||
- **Phase 43+: If 側 PHI 本体削除**
|
||||
- if_phi.rs / conservative.rs の残存関数は全て parse_loop 以外からも呼ばれている
|
||||
- 他の関数(print_tokens 等)も JoinIR 経路に乗せてから本体削除
|
||||
- **Phase 61-7+: If PHI 大型統合(P2 候補)**
|
||||
- `compute_modified_names_if`: 変更変数検出を JoinIR の modified 変数集合解析に統合(~75行)
|
||||
- `get_conservative_if_values`: incoming 値解決を PhiSpec に移行、void fallback 削除(~70行)
|
||||
- 期待削減: 合計 145行
|
||||
- **Classifier Trio**
|
||||
- LoopVarClassBox / LoopExitLivenessBox / LocalScopeInspectorBox を LoopScopeShape に吸収し、JoinIR lowering / LoopForm 側から直接 LoopScopeShape を見る構造に整理。
|
||||
- **Mir 決定性(小フェーズ予定)**
|
||||
|
||||
Submodule docs/private updated: c941a54368...dde5eb0cb2
Reference in New Issue
Block a user