ReviewOS

zig-utils/zig-js

GC relocation: rewrite BoundFunction and module namespace cells

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

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

Implement the next complete, bounded cell-rewrite slice for the small side-cell kinds whose marker coverage is already precise.

Acceptance:

  • BoundFunction target, bound this, and every bound argument Value are rewritten.
  • Module namespace environment entries are rewritten while arena-owned names, local-name slices, and deferred module metadata remain stable.
  • Distinct-target regressions prove every slot changes through the forwarding plan.
  • 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 4b8983a5.

Delivered:

  • relocateBoundFn rewrites the target, bound this, and every bound argument Value;
  • relocateModuleNs rewrites every namespace environment pointer;
  • arena-owned export/local names and deferred-module metadata are explicitly preserved;
  • distinct-target regression coverage proves every managed slot changes through the forwarding plan;
  • the relocation design document records the completed side-cell slice.

Local gates:

  • filtered normal: 3/3 passed, 0 failed, 0 leaked;
  • filtered TSan: 3/3 passed, 0 failed, 0 leaked;
  • strengthened final metadata assertions: normal 3/3, 0 leaked.

Production movement remains disabled. Keeping this open only for a descendant full GitHub Actions matrix.

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.