Goal
Track allocator provenance for allocation-owning values and enforce safe deallocation across semantic and LLVM boundaries.
Completed
Added allocator descriptors to owning dynamic arrays and strings.
Added allocator-aware allocation, release, drop glue, and automatic cleanup.
Consumed owned values passed to alloc; allocator is sized and equatable.
Kept carrier-only array/string ABI paths free of unnecessary allocator runtime symbols.
Centralized owned-interface ABI layout and separated owned/borrowed interface symbols.
Fixed borrowed-interface thunk receiver lowering.
Rejected owner-bearing extern parameters and returns with T0021.
Added raw-pointer FFI fixtures and cross-module owned ABI coverage.
Made synthesized allocator bridge symbols module-local to avoid duplicate definitions.
Evidence
Commits: 53c5432, ea925f1, d651bda.
Full Go tests, vet, bundle generation, positive runtime fixtures, negative semantic fixtures, and git diff --check pass.
main is synced to origin/main.
Future boundaries
Owner-bearing values must not cross arbitrary FFI; use explicit raw-pointer adoption/release APIs.
Scoped/custom allocator instances and portable runtime bridge replacement remain future design work.
See Add scoped and custom allocator behavior #64 for separate allocator-behavior/lowering follow-up.
Goal
Track allocator provenance for allocation-owning values and enforce safe deallocation across semantic and LLVM boundaries.
Completed
alloc; allocator is sized and equatable.T0021.Evidence
53c5432,ea925f1,d651bda.git diff --checkpass.mainis synced toorigin/main.Future boundaries