1.7 KiB
1.7 KiB
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 VM’s 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.
- If allocation threshold exceeded, run GC at
-
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 testpasses.
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 testpasses.
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.