docs(phase29aa): mark P7 complete and queue P8
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
# Self Current Task — Now (main)
|
||||
|
||||
## Current Focus: Phase 29aa P7(Deterministic ReleaseStrong ordering)
|
||||
## Current Focus: Phase 29aa P8(Null propagation across CFG; Copy-only)
|
||||
|
||||
**2025-12-28: Phase 29aa P5 完了** ✅
|
||||
- 目的: Return block が複数 predecessor のとき、incoming state が完全一致する場合のみ ReturnCleanup を成立させる
|
||||
@ -25,6 +25,10 @@
|
||||
- Selfcheck: Case 3.11(values が昇順であることを検証)PASS
|
||||
- 検証: quick 154/154 PASS / selfcheck PASS
|
||||
|
||||
**2025-12-28: Phase 29aa P8 進行中**
|
||||
- 目的: CFG を跨いだ null 伝播(Copy-only)で explicit drop(Store null)の精度を上げる
|
||||
- 入口: `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`
|
||||
|
||||
@ -68,13 +68,14 @@ Related:
|
||||
- 入口: `docs/development/current/main/phases/phase-29z/README.md`
|
||||
- 指示書: `docs/development/current/main/phases/phase-29z/P0-RC_INSERTION_MINIMAL-INSTRUCTIONS.md`
|
||||
|
||||
- **Phase 29aa(P6 COMPLETE / P7 planned): RC insertion safety expansion(CFG-aware)**
|
||||
- **Phase 29aa(P7 COMPLETE / P8 planned): RC insertion safety expansion(CFG-aware)**
|
||||
- 進捗: P2 ✅ 完了(Jump/Branch 終端で cleanup を入れない契約の SSOT 化)
|
||||
- 進捗: P3 ✅ 完了(Jump→Return single-predecessor state 伝播)
|
||||
- 進捗: P4 ✅ 完了(Jump-chain propagation to Return)
|
||||
- 進捗: P5 ✅ 完了(Multi-predecessor Return join: state完全一致のみ)
|
||||
- 進捗: P6 ✅ 完了(Multi-predecessor Return join: intersection)
|
||||
- 次: P7(Deterministic ReleaseStrong ordering)
|
||||
- 進捗: P7 ✅ 完了(Deterministic ReleaseStrong ordering)
|
||||
- 次: P8(Null propagation across basic blocks; Copy-only first)
|
||||
- 入口: `docs/development/current/main/phases/phase-29aa/README.md`
|
||||
|
||||
- **Phase 29x(planned, post self-host): De-Rust runtime for LLVM execution**
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Phase 29aa: RC insertion safety expansion(CFG-aware design)
|
||||
|
||||
Status: P7 Complete (Deterministic ReleaseStrong ordering)
|
||||
Status: P8 Ready (Null propagation across CFG; Copy-only)
|
||||
Scope: Phase 29z の単一block限定実装から、誤releaseを起こさない形で CFG-aware に拡張するための設計を固める。
|
||||
|
||||
Entry:
|
||||
@ -27,6 +27,7 @@ Progress:
|
||||
- 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 由来の非決定性を排除)
|
||||
- P8: Null 伝播を CFG を跨いで扱う(最初は Copy-only + single-predecessor)
|
||||
|
||||
P3 SSOT:
|
||||
- Contract:
|
||||
@ -102,6 +103,16 @@ P7 SSOT:
|
||||
- Scope:
|
||||
- ReturnCleanup(単一block / P4 chain / P6 join)の `values` が対象
|
||||
- Overwrite/ExplicitNull の単一要素 vec はそのままで OK
|
||||
|
||||
P8 SSOT:
|
||||
- Objective:
|
||||
- `Store null`(explicit drop)の追跡を CFG 越しに正しく扱い、誤 release を避ける。
|
||||
- Contract:
|
||||
- 最初は Copy-only の null 伝播のみ(`Copy dst, src`)
|
||||
- single-predecessor(Jump-chain / single-pred Return)範囲に限定
|
||||
- multi-predecessor では null 伝播は合流しない(保守的に Unknown 扱い)
|
||||
- Acceptance:
|
||||
- selfcheck: null を A で作って B で Store に使う(Jump で跨ぐ)ケースを追加し PASS
|
||||
- Conservative:
|
||||
- intersection は「安全だが保守的」。value 不一致の ptr は release されない=リーク方向
|
||||
- P5 でも同じく release できてなかったケースなので回帰にはならないが、完全なメモリ回収には将来の PHI 対応が必要
|
||||
|
||||
Reference in New Issue
Block a user