phase29ab(p5): freeze pattern7 split-scan near-miss with fixture+smoke

This commit is contained in:
2025-12-28 14:32:19 +09:00
parent 7a790a27cb
commit bea2a8d9bb
6 changed files with 249 additions and 14 deletions

View File

@ -1,6 +1,6 @@
# Self Current Task — Now (main)
## Current Focus: Phase 29ab P4Phase 263 realworld seg: Derived slot
## Current Focus: Phase 29ab P5Pattern7 SplitScan contract fail-fast
**2025-12-28: Phase 29ab P1 完了**
- 目的: Pattern2 の LoopBodyLocal promotion の最小ケースを fixture+integration smoke で固定
@ -27,6 +27,13 @@
- Smoke: `tools/smokes/v2/profiles/integration/apps/phase263_pattern2_seg_realworld_min_vm.sh`
- 追加/調整: `String.indexOf(search, fromIndex)` の2引数対応arity解決を含むを VM/JoinIR lowering 側で整備
**2025-12-28: Phase 29ab P5 完了**
- 目的: Pattern7 SplitScan の「形は近いが契約違反」ケースを extractor 段で freeze に固定SSOT化
- 実装: `src/mir/builder/control_flow/joinir/patterns/pattern7_split_scan.rs``freeze_with_hint("phase29ab/pattern7/contract", ...)`
- fixture: `apps/tests/phase29ab_pattern7_firstfail_min.hako`
- smoke: `tools/smokes/v2/profiles/integration/apps/phase29ab_pattern7_firstfail_min_vm.sh`
- 検証: `./tools/smokes/v2/run.sh --profile integration --filter "phase29ab_pattern7_*"` PASS
**2025-12-28: Phase 29aa P5 完了**
- 目的: Return block が複数 predecessor のとき、incoming state が完全一致する場合のみ ReturnCleanup を成立させる
- 入口: `docs/development/current/main/phases/phase-29aa/README.md`

View File

@ -13,7 +13,8 @@ Related:
- P2: Pattern2 Trim seg minimal fixture+smoke fixed`phase29ab_pattern2_loopbodylocal_seg_min_vm`
- P3: PromoteDecision の “NotApplicable/Freeze” 境界を contract+smoke で固定JoinIR-only前提
- P4: Phase 263StageB 実ログ segを Derived slot 方針で通し、fixture+smoke で固定
- P5: Pattern6/7joinir/edgecfgfirst-fail を fixture で固定して、Frag/compose へ収束方針を決める
- P5: Pattern7 SplitScan first-fail契約違反を freeze で固定して SSOT 化
- P6: Pattern6 MatchScan first-fail を同様に fixture+smoke で固定freeze/NotApplicableの境界を決める
- **Phase 288✅ P0P3 + 288.1 complete: REPL mode**
- 入口: `docs/development/current/main/phases/phase-288/README.md`

View File

@ -346,6 +346,7 @@ MIR Terminator Instructions
- **NormalizeBox 直後**: terminator 語彙固定・edge-args 長さ一致・cond付きJump禁止など “意味SSOT” を確定
- **merge直前**: boundary/ABI/edge-args の矛盾を即死させ “配線SSOT” を確定
- **--verify**: PHI predecessor / CFG cache 整合 / edge-args の長さ一致を常設
- **Pattern6/7 extractor**: 形は近いが契約違反のケースは `Ok(None)` で流さず freeze例: SplitScan の `else i = i + 1` 破り)
## 直近の導入ステップ(最小で始める)