docs(joinir): Task 200-4 - Update CURRENT_TASK and overview for Phase 200 Pipeline Cleanup
- Added Phase 200 completion status to CURRENT_TASK.md - Updated joinir-architecture-overview.md with: - JoinInlineBoundaryBuilder (Phase 200-2) - JoinIRVerifier (Phase 200-3) - Phase 200 achievements: - Task 200-1: Pattern × Box matrix table (21 boxes documented) - Task 200-2: Builder pattern for JoinInlineBoundary (Pattern2 pilot) - Task 200-3: Debug contract verifier for LoopHeader PHI/ExitLine - Task 200-4: Documentation updates Phase 200 cleanup focuses on pipeline structure improvement without changing behavior, establishing foundation for future refactoring.
This commit is contained in:
@ -37,8 +37,16 @@
|
|||||||
- [x] Phase 171‑C-5: TrimLoopHelper 設計 ✅ (2025-12-07)
|
- [x] Phase 171‑C-5: TrimLoopHelper 設計 ✅ (2025-12-07)
|
||||||
→ `TrimLoopHelper` struct で Trim 専用ロジックを一箇所に集約。
|
→ `TrimLoopHelper` struct で Trim 専用ロジックを一箇所に集約。
|
||||||
→ `CarrierInfo::trim_helper()` アクセサ追加。4 unit tests。
|
→ `CarrierInfo::trim_helper()` アクセサ追加。4 unit tests。
|
||||||
- [ ] Phase 171‑impl-Trim: Trim 用 JoinIR 生成
|
- [x] Phase 171‑impl-Trim: Trim 用 JoinIR 生成 ✅ (2025-12-08)
|
||||||
→ `CarrierInfo::trim_helper()` を使って bool carrier の初期化・更新・exit PHI を生成。
|
→ `CarrierInfo::trim_helper()` を使って bool carrier の初期化・更新・exit PHI を生成。
|
||||||
|
- [x] Phase 172-Trim-impl: Trim 用 MIR 生成 ✅ (2025-12-08)
|
||||||
|
→ Pattern2 で Trim パターンの JoinIR→MIR lowering 実装完了。
|
||||||
|
→ emit_whitespace_check(), extract_substring_args() ヘルパ追加。
|
||||||
|
- [x] Phase 200: JoinIR パイプライン Cleanup (Part 1) ✅ (2025-12-08)
|
||||||
|
→ Task 200-1: Pattern × Box マトリクス表をドキュメント化(loop_pattern_space.md に追加)。
|
||||||
|
→ Task 200-2: JoinInlineBoundaryBuilder 導入(Pattern2 で試験導入、Builder パターンで構築統一化)。
|
||||||
|
→ Task 200-3: JoinIRVerifier 追加(LoopHeader PHI / ExitLine 契約のデバッグ検証)。
|
||||||
|
→ Task 200-4: CURRENT_TASK/overview 微修正(Phase 200 内容を反映)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@ -171,6 +171,22 @@ JoinIR ラインで守るべきルールを先に書いておくよ:
|
|||||||
- 変数再接続はヘッダ PHI の dst を使って `builder.variable_map` を更新(Reconnector)。
|
- 変数再接続はヘッダ PHI の dst を使って `builder.variable_map` を更新(Reconnector)。
|
||||||
- expr 用の PHI には一切触れない(carrier 専用ライン)。
|
- expr 用の PHI には一切触れない(carrier 専用ライン)。
|
||||||
|
|
||||||
|
- **JoinInlineBoundaryBuilder(Phase 200-2 追加)**
|
||||||
|
- ファイル: `src/mir/join_ir/lowering/inline_boundary_builder.rs`
|
||||||
|
- 責務:
|
||||||
|
- JoinInlineBoundary の構築を Builder パターンで統一化。
|
||||||
|
- フィールド直書きの散乱を防ぎ、inputs/outputs/condition_bindings/exit_bindings/loop_var_name/expr_result の設定を fluent API で実施。
|
||||||
|
- Pattern2 で試験導入済み(Pattern3/4 は将来適用予定)。
|
||||||
|
|
||||||
|
- **JoinIRVerifier(Phase 200-3 追加)**
|
||||||
|
- ファイル: `src/mir/builder/control_flow/joinir/merge/mod.rs`(debug_assertions 専用関数)
|
||||||
|
- 責務:
|
||||||
|
- LoopHeader PHI / ExitLine 契約をデバッグビルドで検証する門番。
|
||||||
|
- `verify_loop_header_phis()`: loop_var_name がある場合にヘッダ PHI が存在するか確認。
|
||||||
|
- `verify_exit_line()`: exit_bindings が exit block に対応しているか確認。
|
||||||
|
- `verify_joinir_contracts()`: merge_joinir_mir_blocks() の最後で全契約を一括チェック。
|
||||||
|
- release ビルドでは完全に除去される(`#[cfg(debug_assertions)]`)。
|
||||||
|
|
||||||
### 2.4 expr result ライン(式としての戻り値)
|
### 2.4 expr result ライン(式としての戻り値)
|
||||||
|
|
||||||
- **exit_phi_builder**
|
- **exit_phi_builder**
|
||||||
|
|||||||
Reference in New Issue
Block a user