2025-12-29 05:46:49 +09:00
|
|
|
|
# Phase 29af P4: Layout Consistency Contract — Instructions
|
|
|
|
|
|
|
|
|
|
|
|
Status: Ready for execution
|
2025-12-29 05:59:01 +09:00
|
|
|
|
Scope: BoundaryCarrierLayout と LoopHeaderPhiInfo::carrier_order の整合を Fail-Fast で固定(仕様不変)
|
2025-12-29 05:46:49 +09:00
|
|
|
|
|
|
|
|
|
|
## Goal
|
|
|
|
|
|
|
2025-12-29 05:59:01 +09:00
|
|
|
|
BoundaryCarrierLayout と header PHI の順序がズレたときに、merge 入口で早期に検知する。
|
2025-12-29 05:46:49 +09:00
|
|
|
|
|
|
|
|
|
|
## Non-goals
|
|
|
|
|
|
|
2025-12-29 05:59:01 +09:00
|
|
|
|
- 挙動変更(release 既定挙動の変更)
|
2025-12-29 05:46:49 +09:00
|
|
|
|
- env var の追加
|
2025-12-29 05:59:01 +09:00
|
|
|
|
- fixture/smoke の増加
|
2025-12-29 05:46:49 +09:00
|
|
|
|
|
|
|
|
|
|
## Implementation Steps
|
|
|
|
|
|
|
2025-12-29 05:59:01 +09:00
|
|
|
|
1) contract_checks にレイアウト整合性チェックを追加
|
|
|
|
|
|
- `src/mir/builder/control_flow/joinir/merge/contract_checks/header_phi_layout.rs`
|
|
|
|
|
|
- boundary の順序と header PHI の順序が一致することを strict/dev で検証
|
2025-12-29 05:46:49 +09:00
|
|
|
|
|
2025-12-29 05:59:01 +09:00
|
|
|
|
2) merge 入口でチェックを呼ぶ
|
|
|
|
|
|
- `src/mir/builder/control_flow/joinir/merge/coordinator.rs`
|
|
|
|
|
|
- prebuild_header_phis の直後で `verify_header_phi_layout(...)` を呼ぶ
|
2025-12-29 05:46:49 +09:00
|
|
|
|
|
2025-12-29 05:59:01 +09:00
|
|
|
|
3) boundary_hygiene を強化
|
|
|
|
|
|
- `src/mir/builder/control_flow/joinir/merge/contract_checks/boundary_hygiene.rs`
|
|
|
|
|
|
- carrier_info の順序と BoundaryCarrierLayout の順序が同名同順で一致することを検証
|
2025-12-29 05:46:49 +09:00
|
|
|
|
|
2025-12-29 05:59:01 +09:00
|
|
|
|
4) docs 更新
|
|
|
|
|
|
- `docs/development/current/main/phases/phase-29af/README.md`
|
|
|
|
|
|
- `docs/development/current/main/10-Now.md`
|
|
|
|
|
|
- `docs/development/current/main/30-Backlog.md`
|
2025-12-29 05:46:49 +09:00
|
|
|
|
|
|
|
|
|
|
## Verification
|
|
|
|
|
|
|
|
|
|
|
|
- `cargo build --release`
|
|
|
|
|
|
- `./tools/smokes/v2/run.sh --profile quick`
|
|
|
|
|
|
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
|
|
|
|
|
|
|
|
|
|
|
|
## Acceptance Criteria
|
|
|
|
|
|
|
2025-12-29 05:59:01 +09:00
|
|
|
|
- strict/dev でズレを Fail-Fast できる
|
|
|
|
|
|
- quick 154/154 PASS(不変)
|
|
|
|
|
|
- JoinIR regression pack が PASS
|