ReviewOS

zig-utils/zig-js

GC: preserve the 128-byte Object allocation with stable zig-gc IDs

#413
Closed chris opened this 9 days ago ·
9 days ago

Parent: #144 Roadmap: #134 Dependency: zig-utils/zig-gc#40

The exact main CI for #411 exposed a dependency-contract regression: zig-gc's relocation-stable cell ID expanded its 64-bit header from 32 to 48 bytes, moving the 96-byte zig-js Object from the 128-byte allocation into the 256-byte backing class.

Acceptance:

  • Fix zig-gc without removing process-unique, non-recycled, relocation-stable cell IDs.
  • Restore a compile-time 32-byte 64-bit header and the zig-js 128-byte Object allocation invariant.
  • Preserve race-free marked/young/remembered transitions under Debug, ReleaseSafe, and TSan.
  • Refresh the checked-in zig-gc implementation reference and exact dependency documentation.
  • Reconcile exact main CI before closure.
9 days ago

The dependency fix remains green in zig-gc run 29791808593. The first zig-js descendant run found unrelated publication/stress issues after the Object slab invariant itself passed focused-engine-tests. The SQL export classification is fixed in 1e0b814c; the exact replacement run is https://github.com/zig-utils/zig-js/actions/runs/29792663816.

9 days ago

Complete. zig-gc retains relocation-stable non-recycled IDs in the restored 32-byte header, preserving zig-js Object allocation in the 128-byte class. The dependency gate is green and exact zig-js main run 29801586207 passed all 43 jobs.

Sign in to comment on this issue.