diff --git a/docs/development/current/main/10-Now.md b/docs/development/current/main/10-Now.md index 0d9b75b0..f1692637 100644 --- a/docs/development/current/main/10-Now.md +++ b/docs/development/current/main/10-Now.md @@ -1,5 +1,10 @@ # Self Current Task — Now (main) +## Next: Phase 271(docs-only)— Bridge pattern 撤去条件SSOT + +- 目的: bridge pattern(例: `Pattern9_AccumConstLoop`)を「汎用化せず、吸収して消す」ための撤去条件を SSOT 化 +- 変更: `docs/development/current/main/design/edgecfg-fragments.md` と `docs/development/current/main/30-Backlog.md` のみ + ## 2025-12-21:Phase 270(P0+P1)— JoinIR-only minimal loop SSOT ✅ - 目的: `loop(i < 3)` + `sum=sum+i` + `i=i+1` を JoinIR 経路で通すことを fixture/smoke で固定 diff --git a/docs/development/current/main/30-Backlog.md b/docs/development/current/main/30-Backlog.md index 0ce7de8c..6872181b 100644 --- a/docs/development/current/main/30-Backlog.md +++ b/docs/development/current/main/30-Backlog.md @@ -13,6 +13,11 @@ Related: - Pattern1 は test-only stub のため不適合 → Pattern9(AccumConstLoop)を橋渡しとして追加 - 詳細: `phases/phase-270/README.md` +- **Phase 271(planned, docs-only): Bridge pattern 撤去条件SSOT** + - 対象: bridge pattern(例: `Pattern9_AccumConstLoop`) + - 目的: 「汎用化しない」「Frag 合成へ吸収して削除する」を SSOT 化 + - SSOT: `docs/development/current/main/design/edgecfg-fragments.md` + - **Phase 269 P1(planned): Pattern8 Frag lowerer 実装** - stub → 実装(compose::loop_() + emit_frag()) - MIR terminator 生成確認(Branch/Jump/Return) diff --git a/docs/development/current/main/design/edgecfg-fragments.md b/docs/development/current/main/design/edgecfg-fragments.md index 37045cdf..c67fa6d8 100644 --- a/docs/development/current/main/design/edgecfg-fragments.md +++ b/docs/development/current/main/design/edgecfg-fragments.md @@ -138,6 +138,21 @@ Frag = { entry_block, exits: Map> } - Pattern1(simple_while_minimal)は test-only stub のため、一般ループの “基準” には使えない。 - Phase 270 では “最小の固定形” を Pattern9(AccumConstLoop)として追加し、後で Frag 合成側へ吸収される前提で橋渡しにする。 +## Bridge patterns(撤去条件SSOT) + +ここで言う “bridge pattern” は、既存の JoinIR ルートを壊さずに **最小の固定形を先に通す**ための一時パターン。 +(例: Phase 270 の `Pattern9_AccumConstLoop`) + +- 原則: + - bridge pattern は **汎用化しない**(固定形SSOT + fixture/smoke で仕様を固定するだけ)。 + - 将来は `Frag/ExitKind` 合成側へ **吸収して削除**する前提で追加する。 +- 撤去条件(最低限): + 1. loop の EdgeCFG 実戦投入が 1 箇所以上済み(BasicBlockId 層で `Frag + emit_frag` を使っている) + 2. bridge pattern の fixture が “Frag 合成経路” で PASS する + 3. quick/integration の FAIL 位置が悪化しないことを確認済み +- 撤去手順(最小): + - router から bridge pattern を外す → fixture/smoke で PASS 維持 → ファイル削除 + ## 実装入口(コード SSOT) **Phase 264 で入口API を作成完了**