1.2 KiB
1.2 KiB
Phase 20.21 — チェックリスト(Manual Memory Management / C‑ABI)
開始前
- 既定OFF/Fail‑Fast/SSOT 方針の合意
- libc 既定/hakmem 切替は ENV のみ(実装は次)
実装
- hako_alloc/hako_free(libc)+ ABI名
hako_mem_alloc/freeエイリアス - (任意)hako_realloc(安全に提供できる条件を満たす場合)
- HakoHandle retain/release(atomic;handle_registry 実装)
- ENV: HAKO_C_ABI_ALLOC={libc|hakmem}
テスト/スモーク
- alloc→write→free 正常(cabi_mem_alloc_free_vm.sh)
- unknown handle → Fail(cabi_handle_unknown_fail_vm.sh)
- retain→release の基本(0→free)(cabi_handle_retain_release_vm.sh)
- double free(handle)→ Fail(任意で追加)
- (任意)ASan/Valgrind ガイド+実行
ドキュメント
- abi/README.md に Memory Ownership Rules 追記
- 失敗時の安定文言(unknown handle/double release/allocator mismatch)を明記
受入基準
- スモーク緑/回帰なし(quick 既定)
- ENV 既定OFFで既存経路の挙動不変(メモリAPIはC側で独立・default=libc)
- SSOTが最新の実装・CLIと一致(abi/README.md / env-variables)