ReviewOS

zig-utils/zig-js

GC generations: prove multi-age no-GIL minor rendezvous

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

Parent: #145 Depends on: #363 Related: #1, #97

Extend the existing cooperative no-GIL minor collector from a one-cycle churn witness to the selected multi-age policy.

Scope

  • Keep two real no-GIL JavaScript mutators active through repeated cooperative nursery rendezvous.
  • Retain an unchanged old-to-young graph across enough successful minors to reach the configured promotion age.
  • Prove every rendezvous parks peers, completes without timeout, and leaves no active publication generation.
  • Record survivor and promotion telemetry across the sequence.
  • Keep the fixed production trigger unchanged in this correctness slice; adaptive trigger tuning belongs to benchmark evidence.

Acceptance

  • At least three cooperative minor collections complete while peers execute.
  • A graph stored once through an old owner remains exact and promotes at age three.
  • Attempts, collections, peer parks, timeouts, request state, and survivor/promotion counters are coherent.
  • Focused Debug, ReleaseSafe, and suppression-free TSan pass with zero leaks.
9 days ago

Implemented in bdad267a and pushed to main. The real shared-realm no-GIL witness runs two JS mutators through at least three cooperative minor collections, retains and promotes an old-owner graph, records nonzero rendezvous attempts/parks, records zero timeouts, closes the request/collector lifecycle exactly, and returns the exact result. Its focused filter passed 3/3 with zero leaks in Debug, ReleaseSafe, and suppression-free TSan.

Sign in to comment on this issue.