34 lines
1.5 KiB
Markdown
34 lines
1.5 KiB
Markdown
|
|
# Phase 20.23 — Arc/RefCell in Hakorune(チェックリスト / MVP)
|
|||
|
|
|
|||
|
|
開始前
|
|||
|
|
- [x] Phase 20.21 完了(C‑ABI メモリ/RC の SSOT 確立)
|
|||
|
|
- [x] 20.22 は P1(FFI 用)として後回し(セルフホスト優先)
|
|||
|
|
|
|||
|
|
実装(MVP)
|
|||
|
|
- [x] ArcBox(Policy plane: Hakorune)
|
|||
|
|
- [x] birth(ptr) / retain() / release() / clone()
|
|||
|
|
- [x] Fail‑Fast: underflow/unknown(安定タグ `[arc/underflow]`, `[arc/unknown]`)
|
|||
|
|
- [x] 追跡: `NYASH_DEBUG_ARC=1`(`HAKO_DEBUG_ARC` エイリアス)で簡易トレース
|
|||
|
|
- [x] RefCellBox(Policy plane: Hakorune)
|
|||
|
|
- [x] try_borrow()/try_borrow_mut()/release_shared()/release_mut()/state()
|
|||
|
|
- [x] Fail‑Fast: 二重の可変借用/可変と不変の競合(`[refcell/conflict_*]`)
|
|||
|
|
|
|||
|
|
データプレーン連携(後続可)
|
|||
|
|
- [ ] env.arc.* / env.refcell.* の extern 仕様(SSOT)
|
|||
|
|
- [ ] Data plane(C)ブリッジは 20.21 の RC/alloc を再利用(必要時のみ)
|
|||
|
|
|
|||
|
|
テスト/スモーク(opt‑in, quick)
|
|||
|
|
- [x] Arc: retain→release→0(OK)
|
|||
|
|
- [x] Arc: underflowでFail([arc/underflow])
|
|||
|
|
- [x] RefCell: borrow_mut→borrow 競合(Fail 検出=PASS)
|
|||
|
|
- [x] RefCell: try_borrow OK(init→try_borrow→release_shared→0)
|
|||
|
|
|
|||
|
|
ドキュメント
|
|||
|
|
- [x] externs SSOT に env.arc.* / env.refcell.* を追記
|
|||
|
|
- [ ] README(API/所有権/Fail‑Fast 診断)
|
|||
|
|
- [ ] 20.21 RC との整合と例を追加(abi/README.md への短記)
|
|||
|
|
|
|||
|
|
受入基準
|
|||
|
|
- [ ] quick(opt‑in)緑/回帰なし
|
|||
|
|
- [ ] 既定OFFで既存挙動不変(Arc/RefCell は opt‑in API)
|