ReviewOS

zig-utils/zig-js

GC relocation: rewrite Object rare and exotic strong state

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

Parent: #335 Depends on: #343 Roadmap: #144, #134

Rewrite every strong managed reference held by Object cold/rare/exotic state except weak/finalization/native/Wasm boundaries.

Acceptance:

  • Cover constructor/proxy links, boxed/getter-setter Values, callable side cells, argument-map Environment, TypedArray/DataView buffer owners, and every active rare-state strong edge.
  • Mutate actual cold/rare storage, never a trace snapshot copy.
  • Preserve non-GC native/arena payloads and inactive union variants.
  • Distinct-tag regressions cover every active rare variant.
  • Focused normal and TSan runs report zero failures and leaks.
  • Production movement remains disabled and #335 is updated.
9 days ago

Implemented and pushed in 80b2d0ca.

Delivered:

  • mutates actual cold/rare union storage rather than marker snapshots;
  • rewrites boxed primitive and ordinary GetterSetter Values, argument-map Environment, module/function/bound/promise/generator/iterator side cells, proxy/constructor objects, and TypedArray/DataView buffer owners;
  • preserves native ArrayBuffer payload, arena metadata, inactive union variants, and custom native GetterSetter pointers;
  • distinct-tag regression covers every managed variant in this slice.

Local gates:

  • filtered normal: 3/3 passed, 0 failed, 0 leaked;
  • filtered TSan: 3/3 passed, 0 failed, 0 leaked.

Weak/finalization/native/Wasm state remains isolated for the ordered follow-up. Production movement remains disabled.

9 days ago

Completed and accepted. The implementation-specific local evidence is recorded above, and descendant full CI at https://github.com/zig-utils/zig-js/actions/runs/29716788619 completed with 42 successful jobs, one intentional nightly skip, zero failures, and zero cancellations.

Sign in to comment on this issue.