refactor(joinir): Phase 30 F-2.0/F-3 - PHI箱インベントリと旧APIレガシー削除
F-3 レガシー削除: - generic_case_a.rs: 旧API関数4個削除(_with_scope 移行完了) - loop_scope_shape.rs: CaseAContext::new() 削除(from_scope() に統一) - mod.rs: 不要な pub use 削除 - #[allow(dead_code)] 除去(5関数) - 未使用import削除(コード削減約150行) F-2.0 PHI箱インベントリ: - PHI_BOX_INVENTORY.md 作成: 13箱+11補助構造体の棚卸し - 削除順ポリシー: 早期/中期/最終の3段階 - TASKS.md/CURRENT_TASK.md 更新 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -40,6 +40,80 @@
|
||||
|
||||
## 1. 最近完了した重要タスク
|
||||
|
||||
### 1-00w. Phase 30 F-3 レガシー削除 — 旧API関数とCaseAContext::new削除(**完了** 2025-11-25)
|
||||
|
||||
**目的**
|
||||
- F-3.0 で `_with_scope` パターンに全lowererが移行完了したため、不要になった旧API関数を削除
|
||||
- `CaseAContext::new()` を削除し、`from_scope()` のみに統一
|
||||
|
||||
**削除内容**
|
||||
1. **generic_case_a.rs**: 旧API関数4個と未使用import削除
|
||||
- `lower_case_a_loop_to_joinir_for_minimal_skip_ws`
|
||||
- `lower_case_a_loop_to_joinir_for_trim_minimal`
|
||||
- `lower_case_a_loop_to_joinir_for_append_defs_minimal`
|
||||
- `lower_case_a_loop_to_joinir_for_stage1_usingresolver_minimal`
|
||||
- 未使用import: `LoopForm`, `LoopExitLivenessBox`, `LoopVarClassBox`, `MirFunction`, `MirQuery`
|
||||
2. **loop_scope_shape.rs**: `CaseAContext::new()` 関数(約85行)削除
|
||||
- 未使用import: `intake_loop_form`, `MirFunction`
|
||||
3. **mod.rs**: `pub use generic_case_a::lower_case_a_loop_to_joinir_for_minimal_skip_ws;` 削除
|
||||
4. **`#[allow(dead_code)]`除去**: 5関数から除去(現在使用中のため不要に)
|
||||
|
||||
**成果**: ビルド警告ゼロ、コードサイズ削減約150行
|
||||
|
||||
---
|
||||
|
||||
### 1-00x. Phase 30 F-2.0 — PHI 箱インベントリ作成と削除順計画(**完了** 2025-11-25)
|
||||
|
||||
**目的**
|
||||
- PHI 関連の箱・モジュールを一覧化
|
||||
- 「どの箱をどの順番で消すか」を PHI_BOX_INVENTORY.md に記録
|
||||
- コード削除はまだ行わず、設計と棚卸しのみ
|
||||
|
||||
**成果物**
|
||||
1. **PHI_BOX_INVENTORY.md 作成**: `docs/private/roadmap2/phases/phase-30-final-joinir-world/`
|
||||
- 一覧テーブル: 13箱 + 補助構造体11個
|
||||
- 削除順ポリシー: 早期/中期/最終の3段階
|
||||
- 外部依存箇所: loop_builder.rs, json_v0_bridge, join_ir/lowering
|
||||
2. **TASKS.md 更新**: F-2.0 完了、F-2.1〜F-2.3 再整理
|
||||
|
||||
**削除順ポリシー要約**:
|
||||
1. **早期削除** (F-2.1): HeaderPhiBuilder / ExitPhiBuilder / BodyLocalPhiBuilder / LoopPhiManager
|
||||
- 外部呼び出しがテストのみ、JoinIR で完全代替済み
|
||||
2. **中期削除** (F-2.2): PhiBuilderBox / LoopSnapshotMerge / if_phi 等
|
||||
- F-3/F-4 完了後に削除
|
||||
3. **最終削除** (F-2.3): LoopVarClassBox / LoopExitLivenessBox / LocalScopeInspectorBox
|
||||
- LoopScopeShape 完全移行後に削除
|
||||
|
||||
**次手**: F-2.1 以降で早期削除候補から順に削除開始
|
||||
|
||||
---
|
||||
|
||||
### 1-00y. Phase 30 F-3.0 — skip_ws で LoopScopeShape 実データ運用開始(**完了** 2025-11-25)
|
||||
|
||||
**目的**
|
||||
- LoopScopeShape を lowering で実データ運用に切り替える(skip_ws を最初のケースとして)
|
||||
- `_with_scope + *_core` パターンを確立し、他の lowerer(trim/append_defs/Stage-1)に展開する準備
|
||||
|
||||
**成果物**
|
||||
1. **generic_case_a.rs 更新**:
|
||||
- `lower_case_a_skip_ws_with_scope(scope: LoopScopeShape)` 新関数追加
|
||||
- `lower_case_a_skip_ws_core(ctx: &CaseAContext)` 共通ロジック抽出
|
||||
- 既存の `lower_case_a_loop_to_joinir_for_minimal_skip_ws` は `*_core` に委譲する薄いラッパーに
|
||||
2. **CaseAContext::from_scope() API**: LoopScopeShape を直接受け取り、CaseAContext を構築
|
||||
3. **コード品質向上**:
|
||||
- 未使用インポート削除(BinaryOperator, VarId)
|
||||
- Phase 30 準備コードに `#[allow(dead_code)]` 追加
|
||||
- visibility 修正(`pub` → `pub(crate)`)で警告ゼロ達成
|
||||
|
||||
**確立されたパターン**:
|
||||
```
|
||||
LoopScopeShape → CaseAContext::from_scope() → lower_case_a_X_core() → JoinModule
|
||||
```
|
||||
|
||||
**次手**: trim / append_defs / Stage-1 minimal に同じパターンを広げていく
|
||||
|
||||
---
|
||||
|
||||
### 1-00z. Phase 30 F-1/F-3/F-4.4 準備調査 — generic_case_a 本線化準備(**完了** 2025-11-25)
|
||||
|
||||
**目的**
|
||||
@ -47,25 +121,29 @@
|
||||
- Task B: VM runner のハードコード分岐の縮退計画を TASKS.md F-4.4 に追記
|
||||
- Task C: 本セクションとして CURRENT_TASK.md に橋渡しを記録
|
||||
|
||||
**調査結果: Lowerer ファイルの Case A 対応状況**
|
||||
**調査結果: Lowerer ファイルの Case A 対応状況**(2025-11-25 更新)
|
||||
|
||||
| ファイル | generic_case_a 呼び出し | LoopScopeShape 使用 | 状態 |
|
||||
|---------|------------------------|-------------------|------|
|
||||
| skip_ws.rs | ✅ `lower_case_a_loop_to_joinir_for_minimal_skip_ws` | ❌(空Box渡し) | 実装済み |
|
||||
| funcscanner_trim.rs | ✅ `lower_case_a_loop_to_joinir_for_trim_minimal` | ❌(空Box渡し) | 実装済み |
|
||||
| funcscanner_append_defs.rs | ✅ `lower_case_a_loop_to_joinir_for_append_defs_minimal` | ❌(空Box渡し) | 実装済み |
|
||||
| stage1_using_resolver.rs | ✅ `lower_case_a_loop_to_joinir_for_stage1_usingresolver_minimal` | ❌(空Box渡し) | 実装済み |
|
||||
| skip_ws.rs | ✅ `lower_case_a_skip_ws_with_scope` | ✅ `_with_scope` 配線済み | **F-3.0 完了** |
|
||||
| funcscanner_trim.rs | ✅ `lower_case_a_trim_with_scope` | ✅ `_with_scope` 配線済み | **F-3.0.3 完了** |
|
||||
| funcscanner_append_defs.rs | ✅ `lower_case_a_append_defs_with_scope` | ✅ `_with_scope` 配線済み | **F-3.0.4 完了** |
|
||||
| stage1_using_resolver.rs | ✅ `lower_case_a_stage1_usingresolver_with_scope` | ✅ `_with_scope` 配線済み | **F-3.0.5 完了** |
|
||||
| stageb_body.rs | ❌(プレースホルダのみ) | ❌ | 未実装 |
|
||||
| stageb_funcscanner.rs | ❌(プレースホルダのみ) | ❌ | 未実装 |
|
||||
|
||||
**発見事項**
|
||||
1. 全ファイルで `NYASH_JOINIR_LOWER_GENERIC` 環境変数トグル + `is_simple_case_a_loop()` で Case A 判定
|
||||
2. **全ファイルで LoopScopeShape 未使用** — `LoopVarClassBox::new()` と `LoopExitLivenessBox::new()`(空)が渡されている
|
||||
3. `CaseAContext` は既に LoopScopeShape への移行準備完了(コメントで言及)
|
||||
2. **skip_ws / trim / append_defs / Stage-1 の4箇所で LoopScopeShape 実データ運用開始**(F-3.0.2~3.0.5 完了)
|
||||
3. `CaseAContext::from_scope()` API 確立 — LoopScopeShape を直接受け取り
|
||||
4. stageb_body / stageb_funcscanner は generic_case_a 実装がない(プレースホルダのみ)
|
||||
|
||||
**次手(F-3/F-4.4 の一歩目)**
|
||||
- F-3 方向: LoopScopeShape を `from_existing_boxes()` 経由で構築し、各 lowerer の空Box渡しを置換
|
||||
**次手(F-3/F-4.4 の継続)**
|
||||
- ✅ F-3.0.2: skip_ws で `_with_scope` パターン確立 → **完了**
|
||||
- ✅ F-3.0.3: trim 用 `_with_scope` 実装と呼び出し切り替え → **完了** (2025-11-25)
|
||||
- ✅ F-3.0.4: append_defs 用 `_with_scope` 実装と切り替え → **完了** (2025-11-25)
|
||||
- ✅ F-3.0.5: Stage-1 minimal 用 `_with_scope` 実装と切り替え → **完了** (2025-11-25)
|
||||
- F-3.0.6:(必要なら)StageB minimal 用 `_with_scope`
|
||||
- F-4.4 方向: VM runner の関数名分岐(約90行)を generic_case_all 完成後に縮退
|
||||
- 縮退計画詳細: `docs/private/roadmap2/phases/phase-30-final-joinir-world/TASKS.md` F-4.4 に記録済み
|
||||
|
||||
|
||||
Reference in New Issue
Block a user