feat(normalization): Phase 142 P0 - Loop statement-level normalization

Phase 142-loopstmt P0: Statement-level normalization

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-19 05:28:49 +09:00
parent 275fe45ba4
commit 4082abb30c
23 changed files with 1610 additions and 246 deletions

View File

@ -8,9 +8,27 @@ Related:
## 直近JoinIR/selfhost
- **Phase 131Normalized loop lowering foundation / 入口作成)**
- ねらい: loop/if の “構造SSOTStepTree/LoopSkeleton” を使い、Normalized loop の最小骨格を固める
- 入口: (未作成)
- **Phase 142-loopstmt P1planned: LLVM EXE smoke を追加**
- 前提DONE: Phase 142-loopstmt P0正規化単位を statementloop 1個へ寄せる
- ねらい: VM で固定済みの fixture を LLVM EXE でも parity 固定する。
- 受け入れ条件:
- 既存 fixture をそのまま使う(新パターン追加をしない)
- out-of-scope は `Ok(None)` でフォールバック(既定挙動不変)
- Phase 130 の LLVM EXE gate が前提(未完なら SKIP を維持)
- **Phase 141 P2+planned: Call/MethodCalleffects + typing を分離して段階投入)**
- ねらい: pure/impure 境界を壊さずに、impure lowering を段階投入する。
- 前提DONE:
- Phase 141 P1.5: known intrinsic allowlist + available_inputs 3-source merge + diagnostics
- 受け入れ条件:
- out-of-scope は `Ok(None)` でフォールバック(既定挙動不変)
- effects の順序付けは SSOT で固定してから解禁by-name 増殖禁止)
- **Phase 143-loopvocabplanned: “新パターン追加” ではなく “語彙追加” で吸収**
- 対象: `loop(true){ if(cond) break/continue }` を StepTree/ControlTree の語彙として表現し、同じ lowering に流す
- 受け入れ条件:
- capability guardFail-Fastでスコープ外を明確化
- fixture/smoke を 1 本ずつ小さく固定VM + LLVM EXE parity
- **real-app loop regression の横展開VM + LLVM EXE**
- ねらい: 実コード由来ループを 1 本ずつ最小抽出して fixture/smoke で固定する(段階投入)。