Parent: #134 Related: #1 and #97
Relocating collection now has precise pointer repair across every declared runtime root and edge, including concurrent/native/JIT boundaries and shared WebAssembly memory growth.
Acceptance
- Define stable handles and relocation metadata for movable cells.
- Rewrite stack, interpreter frame, JIT stack-map, C API, worker, promise, weak, finalization, shape, string, and host roots.
- Preserve object identity and weak/finalization semantics across compaction.
- Integrate write/read barriers required by concurrent access and native code.
- Add fragmentation benchmarks, relocation stress, fault injection, leak checks, and TSan coverage.
- Prove raw movable pointers cannot escape an untracked lifetime for the declared inventory.
Completed child map
- #333 — pointer inventory, forwarding metadata, and rewrite contract.
- #334 — failure-atomic stop-the-world compaction core.
- #335 — runtime root/edge/weak/finalization rewriting.
- #336 — concurrent mutator, native embedding, and JIT barriers.
- #337 — fragmentation, stress, sanitizer, compatibility, and publication evidence.
- #413 — stable zig-gc IDs with 128-byte Object allocation.
- #414/#415/#416 — precise sibling/replacement-realm ownership and private global lifecycle.
- #418 — current-Zig mid-GC teardown stall.
- #425 — shared-write-safe relocating Wasm memory growth.
Exact main e3fdc52385204c75fe6ae5c64d48dae6e5ede418 passed all 43 Actions jobs.