FAILURE MAP
← Case archive

FA-90434 / Garbage collector invariants / Member archive

Cheney copy: scanning stops before the last copied object · case 04

Fields of the most recently copied object keep pointing into from-space.

Member previewVariant 4 · 3 implementations · 7 checks per implementation

Case contract

Breadth-first semispace copying. heap maps from-space address -> {size, fields}. Roots are copied in order, then a scan pointer walks to-space copying each referenced object exactly once (forwarding addresses are reused) and rewriting fields to to-space addresses. Copies are bump-allocated from base with sizes rounded up to 8 bytes; if a copy would end beyond limit, return ["out-of-memory", copies so far]. Return new roots, the to-space layout [new, old, fields] and the final free pointer.

Why this case matters

Copying collectors rely on forwarding pointers and the scan/free invariant to preserve sharing.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
regression: shared object and cycle copied once{"free": 1016, "layout": [[1000, 100, [200, 300]]], "roots": [1000]}{"free": 1040, "layout": [[1000, 100, [1016, 1032]], [1016, 200, [1032]], [1032, 300, [1000, null]]], "roots": [1000]}Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗