2025-12-26 05:56:30 +09:00
|
|
|
|
# Pattern2 (Loop with Break) - Phase 286 P3 で再開
|
2025-12-26 02:03:34 +09:00
|
|
|
|
|
|
|
|
|
|
**Date**: 2025-12-26
|
2025-12-26 05:56:30 +09:00
|
|
|
|
**Status**: **IN PROGRESS** (Phase 286 P3)
|
2025-12-26 02:03:34 +09:00
|
|
|
|
|
|
|
|
|
|
## Summary
|
|
|
|
|
|
|
|
|
|
|
|
Pattern2 requires complex value reconnection at the exit point:
|
|
|
|
|
|
- break経路ではcarrier更新が実行されない
|
2025-12-26 05:56:30 +09:00
|
|
|
|
- **after_bb に PHI 必要**(header経路 vs break経路の値選択)
|
2025-12-26 02:03:34 +09:00
|
|
|
|
- compose::loop_との統合、ExitKind::Break配線が必要
|
|
|
|
|
|
|
2025-12-26 05:56:30 +09:00
|
|
|
|
## 実装方針(Phase 286 P3)
|
2025-12-26 02:03:34 +09:00
|
|
|
|
|
2025-12-26 05:56:30 +09:00
|
|
|
|
**after_bb PHI が本質**:
|
|
|
|
|
|
```
|
|
|
|
|
|
carrier_out = PHI(header: carrier_current, break_then: carrier_break)
|
|
|
|
|
|
```
|
2025-12-26 02:03:34 +09:00
|
|
|
|
|
2025-12-26 05:56:30 +09:00
|
|
|
|
- break 前に update あり → carrier_break = 計算結果
|
|
|
|
|
|
- break 前に update なし → carrier_break = carrier_current(そのまま)
|
2025-12-26 02:03:34 +09:00
|
|
|
|
|
2025-12-26 05:56:30 +09:00
|
|
|
|
**PoC サブセット厳守**: 取れない形は `Ok(None)` で legacy へ(Fail-Fast 回帰防止)
|
2025-12-26 02:03:34 +09:00
|
|
|
|
|
|
|
|
|
|
## Reference
|
|
|
|
|
|
|
|
|
|
|
|
- [joinir-architecture-overview.md](../../joinir-architecture-overview.md) - Pattern2の制約記載
|
|
|
|
|
|
- [Phase 286 README](./README.md) - Phase全体の進捗
|