docs: closeout phase29af; start phase29ag
This commit is contained in:
@ -1,6 +1,13 @@
|
||||
# Self Current Task — Now (main)
|
||||
|
||||
## Current Focus: Phase 29af(Boundary Hygiene SSOT 固定)
|
||||
## Current Focus: Phase 29ag(JoinIR merge SSOT unification)
|
||||
|
||||
Next: `docs/development/current/main/phases/phase-29ag/P0-COORDINATOR-USES-BOUNDARY-CARRIER-LAYOUT-INSTRUCTIONS.md`
|
||||
|
||||
**2025-12-29: Phase 29af P5 完了** ✅
|
||||
- 目的: 29af を closeout して JoinIR 回帰確認を 1 本に収束(仕様不変)
|
||||
- 回帰パック: `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
|
||||
- 検証: `cargo build --release` / `./tools/smokes/v2/run.sh --profile quick` / `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` PASS
|
||||
|
||||
**2025-12-29: Phase 29af P4 完了** ✅
|
||||
- 目的: BoundaryCarrierLayout と header PHI の同順一致を strict/dev で Fail-Fast 固定(仕様不変)
|
||||
|
||||
@ -8,9 +8,12 @@ Related:
|
||||
|
||||
## 直近(JoinIR/selfhost)
|
||||
|
||||
- **Phase 29af(✅ P0–P4 COMPLETE): Boundary hygiene / regression entrypoint / carrier layout SSOT**
|
||||
- **Phase 29af(✅ COMPLETE): Boundary hygiene / regression entrypoint / carrier layout SSOT**
|
||||
- 入口: `docs/development/current/main/phases/phase-29af/README.md`
|
||||
|
||||
- **Phase 29ag(candidate): JoinIR merge の追加安定化**
|
||||
- 入口: `docs/development/current/main/phases/phase-29ag/README.md`
|
||||
|
||||
- **Phase 29ae P1(✅ COMPLETE): JoinIR Regression Pack (SSOT固定)**
|
||||
- 入口: `docs/development/current/main/phases/phase-29ae/README.md`
|
||||
|
||||
|
||||
@ -4,11 +4,7 @@ Goal: Pattern2 の boundary 情報の歪みを SSOT で整理し、将来の回
|
||||
|
||||
## Status
|
||||
|
||||
- P0: ✅ COMPLETE(commit: `19f2c6b7f`)
|
||||
- P1: ✅ COMPLETE(merge `contract_checks` への集約)
|
||||
- P2: ✅ COMPLETE(JoinIR 回帰パックを 1 コマンドに収束)
|
||||
- P3: ✅ COMPLETE(BoundaryCarrierLayout SSOT)
|
||||
- P4: ✅ COMPLETE(layout consistency contract)
|
||||
- P0–P5: ✅ COMPLETE(closeout)
|
||||
|
||||
## 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: Closeout(Next)
|
||||
## P5: Closeout
|
||||
|
||||
P0–P4 の SSOT/contract を確定し、入口(README/Now/Backlog)を締める。
|
||||
P0–P4 の 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
|
||||
|
||||
|
||||
@ -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 の起点を boundary(layout 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 の remap(param[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 で確認可能)
|
||||
18
docs/development/current/main/phases/phase-29ag/README.md
Normal file
18
docs/development/current/main/phases/phase-29ag/README.md
Normal 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`
|
||||
Reference in New Issue
Block a user