2.1 KiB
2.1 KiB
Status, Scope, Related
| Status | Scope | Related | |||||
|---|---|---|---|---|---|---|---|
| Active | CorePlan composition(Feature合成→Normalizerへ、仕様不変で段階導入) |
|
Phase 29ao: CorePlan composition from Skeleton/Feature (Step-C/D)
Goal: DomainPlan の “complete pattern” に寄り過ぎない形で、Skeleton + Feature から CorePlan を合成していく(仕様不変で段階導入)。
Gate(SSOT):
./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh
P0: Composer scaffold(未接続・仕様不変)✅
- 指示書:
docs/development/current/main/phases/phase-29ao/P0-COREPLAN-COMPOSER-SCAFFOLD-INSTRUCTIONS.md - ねらい:
CanonicalLoopFacts(projection済み)→CorePlan合成の入口を 1 箇所に作り、以後の実装を “合成だけ” に寄せる
P1: Composer API決定 + bridge(未接続・仕様不変)✅
- 指示書:
docs/development/current/main/phases/phase-29ao/P1-COREPLAN-COMPOSER-API-BRIDGE-INSTRUCTIONS.md - ねらい:
CorePlanがBasicBlockId/ValueId/Fragを要求するため、Facts→合成の段階で どこが allocation を持つかを SSOT として固定する- まずは “bridge” として、composer が
CanonicalLoopFactsからDomainPlan(既存語彙)を構築してPlanNormalizerを呼べる形まで整える(未接続のまま)
Next(planned)
- P2: CoreLoop skeleton(preheader/header/body/exit)を
CorePlan語彙で生成(effects/phis/frag は “最小で正しい”) - P3: ExitMap presence を
Frag/ExitMapと結ぶ(break/continue/return を feature 合成へ寄せる) - P4: Cleanup presence を ExitKind 単位で wire(effect/cleanup SSOT に従う、観測差分なし)
- P5: ValueJoin presence を post-phi SSOT に沿って wire(局所 verify から)