docs: closeout phase29af; start phase29ag

This commit is contained in:
2025-12-29 06:04:41 +09:00
parent 7d2967cfbf
commit 7a853bd5ed
5 changed files with 94 additions and 11 deletions

View File

@ -4,11 +4,7 @@ Goal: Pattern2 の boundary 情報の歪みを SSOT で整理し、将来の回
## Status
- P0: ✅ COMPLETEcommit: `19f2c6b7f`
- P1: ✅ COMPLETEmerge `contract_checks` への集約)
- P2: ✅ COMPLETEJoinIR 回帰パックを 1 コマンドに収束)
- P3: ✅ COMPLETEBoundaryCarrierLayout SSOT
- P4: ✅ COMPLETElayout consistency contract
- P0P5: ✅ COMPLETEcloseout
## Boundary Contract (SSOT)
@ -60,16 +56,15 @@ BoundaryCarrierLayout と header PHI の順序一致を strict/dev で検証す
- contract_checks: `src/mir/builder/control_flow/joinir/merge/contract_checks/header_phi_layout.rs`
- 配線: `src/mir/builder/control_flow/joinir/merge/coordinator.rs`
## P5: CloseoutNext
## P5: Closeout
P0P4 の SSOT/contract を確定し、入口README/Now/Backlogを締め
P0P4 の SSOT/contract を確定し、入口README/Now/Backlogを締め
## Verification
- `cargo build --release`
- `./tools/smokes/v2/run.sh --profile quick`
- `./tools/smokes/v2/run.sh --profile integration --filter "phase29ab_pattern2_"`
- `./tools/smokes/v2/run.sh --profile integration --filter "phase1883_"`
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
## Notes

View File

@ -0,0 +1,60 @@
# Phase 29ag P0: Coordinator uses BoundaryCarrierLayout — Instructions
Status: Ready for execution
Scope: merge coordinator の param remap を BoundaryCarrierLayout に収束(仕様不変)
## Goal
JoinIR merge の `coordinator.rs` が持っている “carrier順序に依存する remap” を、Phase 29af で確定した SSOT
`BoundaryCarrierLayout` 参照に統一する。
- order の起点を boundarylayout SSOTへ寄せる
- `LoopHeaderPhiInfo::carrier_order` 依存を減らし、ズレの温床を減らす
## Non-goals
- 挙動変更release 既定挙動の変更)
- env var の追加
- contract_checks の追加P4 で十分)
## Target
`src/mir/builder/control_flow/joinir/merge/coordinator.rs`
対象箇所(代表):
- JoinIR main params の remapparam[i] を “carrier name” 経由で header PHI dst に写すところ)
- latch args の index 推測など、順序に依存するロジックがあれば同様に置き換え
## Implementation Steps
1) **BoundaryCarrierLayout を import**
- `use crate::mir::builder::control_flow::joinir::merge::boundary_carrier_layout::BoundaryCarrierLayout;`
2) **carrier order の入力を boundary layout に切替**
変更前(概念):
- `for (idx, carrier_name) in loop_header_phi_info.carrier_order.iter().enumerate() { ... }`
変更後(概念):
- `let layout = BoundaryCarrierLayout::from_boundary(boundary);`
- `for (idx, carrier_name) in layout.ordered_names().iter().enumerate() { ... }`
3) **header PHI dst は LoopHeaderPhiInfo から取得**
- `loop_header_phi_info.get_carrier_phi(carrier_name)` を使う
- “idx と name の整合” は P4 の contract_checks が strict/dev で検出する前提
4) **docs / comments**
- `coordinator.rs` の該当ブロックに “SSOT: BoundaryCarrierLayout” を明記(短く)
- `docs/development/current/main/phases/phase-29ag/README.md` の P0 に実装済みを追記(完了時)
- `docs/development/current/main/10-Now.md` を Phase 29ag に更新(完了時)
## Verification
- `cargo build --release`
- `./tools/smokes/v2/run.sh --profile quick`
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
## Acceptance Criteria
- 回帰パックが PASS のまま(仕様不変)
- coordinator の order 参照が boundary SSOT に寄るreview で確認可能)

View File

@ -0,0 +1,18 @@
# Phase 29ag: JoinIR merge SSOT unification (post-29af)
Goal: Phase 29af で固めた boundary/layout/contract を前提に、merge 内の order SSOT をさらに一箇所へ寄せて回帰余地を減らす(仕様不変)。
## Why now
- Phase 29af で carrier order SSOT`BoundaryCarrierLayout`と整合契約P4まで揃った
- 次は “同じ order を別ソースで再計算する箇所” を減らし、未来の refactor でズレない構造にする
## P0: Coordinator param remap uses BoundaryCarrierLayout
- 指示書: `docs/development/current/main/phases/phase-29ag/P0-COORDINATOR-USES-BOUNDARY-CARRIER-LAYOUT-INSTRUCTIONS.md`
## Verification (SSOT)
- `cargo build --release`
- `./tools/smokes/v2/run.sh --profile quick`
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`