ReviewOS

zig-utils/zig-js

GC relocation: complete Generator and IteratorHelper cell coverage

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

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

Complete the two mutable suspension/helper cell graphs that concurrent marking already defers to the world-stopped finish pass.

Acceptance:

  • Audit Generator marking for every managed field and repair omissions, including import.meta.
  • Rewrite generator environment, operand stack/accumulator, this/home/super/import.meta/result/parent-promise state, and pending async-generator requests.
  • Rewrite every IteratorHelper Value slot.
  • Perform relocation only at the world-stopped finish boundary; do not introduce lock-taking during commit.
  • Distinct-target regressions prove every slot.
  • 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 b710cac5.

Delivered:

  • repaired Generator marking omissions for import_meta_slot.obj and persisted VM frame-slot chains;
  • relocateGenerator rewrites environment, operand stack, accumulator, frame chain, this/home/super/import.meta/result, async parent Promise, and every pending request;
  • relocateIterHelper rewrites all six Value-bearing slots;
  • relocation is explicitly world-stopped, matching concurrent tracing deferral;
  • distinct-target regression proves 20 object slots plus Environment and Promise forwarding.

Local gates:

  • filtered normal: 3/3 passed, 0 failed, 0 leaked;
  • filtered TSan: 3/3 passed, 0 failed, 0 leaked;
  • relocation inventory: 9 cell kinds, 26 pointer surfaces, 21 boundary tags; movement disabled.

Keeping this open only for descendant full GitHub Actions evidence.

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.