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:
nyash-codex
2025-11-29 15:57:19 +09:00
parent 0c23bc0788
commit 1855ed70b9
2 changed files with 27 additions and 3 deletions

View File

@ -157,18 +157,38 @@
- ConservativeMerge struct 定義と付随テストコードを削除し、挙動差分がないことを phi_core / JoinIR テストで確認。 - ConservativeMerge struct 定義と付随テストコードを削除し、挙動差分がないことを phi_core / JoinIR テストで確認。
- Phase 61-1〜61-3 では If-in-loop 専用の箱化を進め、JoinIR 側に PHI 生成の SSOT を寄せた。 - Phase 61-1〜61-3 では If-in-loop 専用の箱化を進め、JoinIR 側に PHI 生成の SSOT を寄せた。
- IfPhiContext でループ内 If の CFG と変数スナップショットをまとめ、IfInLoopPhiEmitter で pre/then/else の snapshot と carrier 集合から必要な φ を構成する thin box を追加。 - 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 - 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` キーワード問題を除き、新たな退行はなし。 - 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 - Phase P1: **If Handler 箱化モジュール化** ✅ 完了2025-11-29
- ループ内 If 処理の 5 パターンEmpty/SingleVarThen/SingleVarBoth/ConditionalEffect/Unsupported`IfInLoopPattern` enum で分類。 - ループ内 If 処理の 5 パターンEmpty/SingleVarThen/SingleVarBoth/ConditionalEffect/Unsupported`IfInLoopPattern` enum で分類。
- `if_in_loop/` モジュール9 ファイル、~480 行)を新設し、`stmt_handlers.rs` から 154 行削減40% 削減達成)。 - `if_in_loop/` モジュール9 ファイル、~480 行)を新設し、`stmt_handlers.rs` から 154 行削減40% 削減達成)。
- 全 56 JoinIR tests PASS回帰なし、保守性・拡張性向上新パターン追加が容易に - 全 56 JoinIR tests PASS回帰なし、保守性・拡張性向上新パターン追加が容易に
- docs: `docs/development/refactoring/p1-if-handler-boxification-plan.md` - docs: `docs/development/refactoring/p1-if-handler-boxification-plan.md`
- JoinIR/phi_core 関連テストは全て PASS。既知の `local` キーワード問題を除き、新たな退行はなし。
--- ---
## 2. 中期 TODOざっくり ## 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 - **Phase 42: PHI Workaround 条件付きスキップ** ✅ 完了2025-11-28
- ✅ 42-1: PHI workaround 内容の文書化完了README.md に記録) - ✅ 42-1: PHI workaround 内容の文書化完了README.md に記録)
- ✅ 42-2: `parser_control_box.hako:85-139` に条件付きスキップ実装 - ✅ 42-2: `parser_control_box.hako:85-139` に条件付きスキップ実装
@ -183,6 +203,10 @@
- **Phase 43+: If 側 PHI 本体削除** - **Phase 43+: If 側 PHI 本体削除**
- if_phi.rs / conservative.rs の残存関数は全て parse_loop 以外からも呼ばれている - if_phi.rs / conservative.rs の残存関数は全て parse_loop 以外からも呼ばれている
- 他の関数print_tokens 等)も JoinIR 経路に乗せてから本体削除 - 他の関数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** - **Classifier Trio**
- LoopVarClassBox / LoopExitLivenessBox / LocalScopeInspectorBox を LoopScopeShape に吸収し、JoinIR lowering / LoopForm 側から直接 LoopScopeShape を見る構造に整理。 - LoopVarClassBox / LoopExitLivenessBox / LocalScopeInspectorBox を LoopScopeShape に吸収し、JoinIR lowering / LoopForm 側から直接 LoopScopeShape を見る構造に整理。
- **Mir 決定性(小フェーズ予定)** - **Mir 決定性(小フェーズ予定)**