feat(joinir): Phase 94 - P5b escape full E2E (derived ch + +1/+2)
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
# Phase 93: ConditionOnly Derived Slot(Trim / body-local)
|
||||
|
||||
Status: Active
|
||||
Status: ✅ Done(P0+P1)
|
||||
Scope: Pattern2(Loop with Break)で「ConditionOnly(PHIで運ばない派生値)」を毎イテレーション再計算できるようにする。
|
||||
Related:
|
||||
- 設計地図(入口): `docs/development/current/main/design/joinir-design-map.md`
|
||||
@ -27,6 +27,19 @@ JoinIR で “初回の計算値が固定される” 事故を避ける。
|
||||
- Trim: `src/mir/builder/control_flow/joinir/patterns/trim_loop_lowering.rs`
|
||||
- ConditionOnly 用 break 生成(反転の有無を明示)
|
||||
|
||||
## 成果(P1): 箱化・語彙のSSOT化
|
||||
|
||||
コミット: `c213ecc3 refactor(mir): Phase 93 リファクタリング - 箱化モジュール化`
|
||||
|
||||
- schedule:
|
||||
- `decide_pattern2_schedule()` に判定を集約し、理由(ConditionOnly / body-local / loop-local / default)をSSOT化
|
||||
- 決定→生成を分離(decision→build)してテスト容易性を上げた
|
||||
- ConditionOnlyRecipe:
|
||||
- `BreakSemantics`(WhenMatch / WhenNotMatch)を recipe に保持し、break 条件生成の責務を recipe 側へ移動
|
||||
- `trim_loop_lowering.rs` 側の重複ヘルパーを削除
|
||||
- Debug(新 env 追加なし):
|
||||
- 既存の `NYASH_JOINIR_DEBUG=1` の範囲で、`[phase93/*]` prefix に統一
|
||||
|
||||
## 受け入れ基準(P0)
|
||||
|
||||
- `apps/tests/loop_min_while.hako` が退行しない(Pattern2 baseline)
|
||||
|
||||
Reference in New Issue
Block a user