docs(phase29aa): mark P6 complete and queue P7

This commit is contained in:
2025-12-28 05:21:28 +09:00
parent 120167bb6e
commit ec1a84c465
3 changed files with 21 additions and 4 deletions

View File

@ -1,6 +1,6 @@
# Self Current Task — Now (main)
## Current Focus: Phase 29aa P6Multi-predecessor Return join - intersection
## Current Focus: Phase 29aa P7Deterministic ReleaseStrong ordering
**2025-12-28: Phase 29aa P5 完了**
- 目的: Return block が複数 predecessor のとき、incoming state が完全一致する場合のみ ReturnCleanup を成立させる
@ -17,6 +17,10 @@
- Selfcheck: Case 3.9部分一致→cleanup/ Case 3.10intersection空→no cleanupPASS
- 検証: quick 154/154 PASS / selfcheck PASS
**2025-12-28: Phase 29aa P7 進行中**
- 目的: ReleaseStrong の `values` 順序を決定的にするHashSet/HashMap 由来の非決定性排除)
- 入口: `docs/development/current/main/phases/phase-29aa/README.md`
**2025-12-27: Phase 29aa P4 完了**
- 目的: Jump の直列チェーン(単一 predecessorを通して ReturnCleanup を成立させるcleanup は Return block のみ)
- 入口: `docs/development/current/main/phases/phase-29aa/README.md`

View File

@ -68,12 +68,13 @@ Related:
- 入口: `docs/development/current/main/phases/phase-29z/README.md`
- 指示書: `docs/development/current/main/phases/phase-29z/P0-RC_INSERTION_MINIMAL-INSTRUCTIONS.md`
- **Phase 29aaP5 COMPLETE / P6 planned: RC insertion safety expansionCFG-aware**
- **Phase 29aaP6 COMPLETE / P7 planned: RC insertion safety expansionCFG-aware**
- 進捗: P2 ✅ 完了Jump/Branch 終端で cleanup を入れない契約の SSOT 化)
- 進捗: P3 ✅ 完了Jump→Return single-predecessor state 伝播)
- 進捗: P4 ✅ 完了Jump-chain propagation to Return
- 進捗: P5 ✅ 完了Multi-predecessor Return join: state完全一致のみ
- : P6Multi-predecessor Return join: intersection
- 進捗: P6 ✅ 完了Multi-predecessor Return join: intersection
- 次: P7Deterministic ReleaseStrong ordering
- 入口: `docs/development/current/main/phases/phase-29aa/README.md`
- **Phase 29xplanned, post self-host: De-Rust runtime for LLVM execution**

View File

@ -1,6 +1,6 @@
# Phase 29aa: RC insertion safety expansionCFG-aware design
Status: P6 Complete (Multi-predecessor Return join - intersection)
Status: P7 Ready (Deterministic ReleaseStrong ordering)
Scope: Phase 29z の単一block限定実装から、誤releaseを起こさない形で CFG-aware に拡張するための設計を固める。
Entry:
@ -26,6 +26,7 @@ Progress:
- P4: Jump-chain単一 predecessor 直列)で state 伝播し ReturnCleanup を成立させるP2/P3 維持)
- P5: Multi-predecessor Return で incoming state が完全一致する場合のみ ReturnCleanup を成立させるP2/P3/P4 維持)
- P6: Multi-predecessor Return で incoming state の「安全な共通部分intersection」のみ cleanup するP2-P5 維持)
- P7: ReleaseStrong の values 順序を決定的にするHashSet/HashMap 由来の非決定性を排除)
P3 SSOT:
- Contract:
@ -90,6 +91,17 @@ P6 SSOT:
- PHI/loop/early-exit の cleanup
- value が一致しない ptr を release 対象に含めること
- Jump block への release 挿入P2維持
P7 SSOT:
- Objective:
- ReleaseStrong の `values: Vec<ValueId>` の順序を決定的にし、再現性と差分追跡性を上げる。
- Contract:
- 生成する `values` は常に `ValueId` 昇順に sort する
- dedup は “順序固定後に隣接重複を除去” で OKまたは BTreeSet
- 挙動は不変release される集合は同じ、順序だけを固定)
- Scope:
- ReturnCleanup単一block / P4 chain / P6 join`values` が対象
- Overwrite/ExplicitNull の単一要素 vec はそのままで OK
- Conservative:
- intersection は「安全だが保守的」。value 不一致の ptr は release されない=リーク方向
- P5 でも同じく release できてなかったケースなので回帰にはならないが、完全なメモリ回収には将来の PHI 対応が必要