2026-03-24 13:40:38 +00:00

1.7 KiB
Raw Blame History

PR-3.7 — Integrate GC Cycle at Safepoint (FRAME_SYNC)

Briefing

The GC must only run at safepoints. This PR connects the mark-sweep collector to the VMs safepoint logic, primarily at FRAME_SYNC.

Target

  • Trigger GC cycles only at safepoints.
  • Keep execution deterministic.

Work items

  • Identify safepoint handling code in the VM.

  • Add logic:

    • If allocation threshold exceeded, run GC at FRAME_SYNC.
  • Ensure GC does not run in arbitrary instruction contexts.

Acceptance checklist

  • GC runs only at safepoints.
  • No GC during arbitrary instruction execution.
  • VM remains deterministic.
  • cargo test passes.

Tests

  • Add a test where allocations trigger GC only at FRAME_SYNC.

Junie instructions

You MAY:

  • Hook GC invocation into safepoint handling.

You MUST NOT:

  • Trigger GC at random points.
  • Add background or concurrent GC.

If unclear:

  • Ask before modifying safepoint semantics.

PR-3.8 — GC Smoke and Stress Tests

Briefing

We need confidence that the GC behaves correctly under simple and stressed conditions.

Target

  • Add deterministic smoke and stress tests for the GC.

Work items

  • Add tests:

    • Simple allocation and collection cycle.
    • Many short-lived objects.
    • Cyclic references.
  • Ensure tests are deterministic.

Acceptance checklist

  • Smoke tests pass.
  • Stress tests pass.
  • No nondeterministic failures.
  • cargo test passes.

Tests

  • New GC-specific tests.

Junie instructions

You MAY:

  • Add deterministic tests.

You MUST NOT:

  • Introduce random or timing-dependent tests.
  • Modify GC semantics to satisfy tests.

If unclear:

  • Ask before changing test scenarios.