docs(phase29aa): mark P6 complete and queue P7
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
# Phase 29aa: RC insertion safety expansion(CFG-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 対応が必要
|
||||
|
||||
Reference in New Issue
Block a user