Parent: #86 Related: #62, rejected #78/#79
Evidence
The #86 cold-state sidecar and Symbol/BigInt payload union reduce Debug Object from 640 to 448 bytes. With zig-gc's 48-byte header, ordinary cells are 496 bytes and correctly enter the existing 512-byte slab. Object churn improves materially (latest higher-work paired run: 558.975 ms -> 505.292 ms, -9.60%, 4/5 wins, exact checksum).
The slab geometry still classifies only 1024/2048-byte buckets as large-chunk buckets. The new dominant 512-byte object bucket therefore uses 64 KiB chunks (128 cells) instead of the old object bucket's 384 KiB chunks. Across 14 order-balanced cold-lifecycle pairs, the current #86 candidate has a small +0.27% median paired cost and only 4/14 wins, consistent with extra chunk growth/address-index maintenance during context construction.
Proposed experiment
- Keep the existing power-of-two classes unchanged.
- Extend the existing large-chunk policy to the 512-byte bucket; do not add or replace a class (the failed direction in #78/#79).
- Update focused allocator geometry tests/comments.
- Compare against both current main and the #86 small-chunk candidate.
Acceptance
- Exact ownership, freelist reuse, trimming, bulk teardown, heap-budget accounting, and parallel locking tests remain green.
- Cold independent context lifecycle shows a repeatable improvement over the #86 small-chunk candidate.
object_churnretains or improves its material #86 win with exact checksum.- Shared scaling and representative steady-state rows do not regress.
- Revert and close as rejected if the paired performance gate is neutral or negative.