Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Wordcode prefixes: instruction start moves past its prefixes · case 01
Jump tables and line maps point into the middle of prefixed instructions.
Wordcode prefixes: instruction start moves past its prefixes · case 02
Jump tables and line maps point into the middle of prefixed instructions.
Wordcode prefixes: instruction start moves past its prefixes · case 03
Jump tables and line maps point into the middle of prefixed instructions.
Wordcode prefixes: instruction start moves past its prefixes · case 04
Jump tables and line maps point into the middle of prefixed instructions.
Wordcode prefixes: instruction start moves past its prefixes · case 05
Jump tables and line maps point into the middle of prefixed instructions.
Wordcode prefixes: trailing EXTENDED_ARG 0 unnoticed · case 01
A code object ending in a zero-valued prefix is accepted as complete.
Wordcode prefixes: trailing EXTENDED_ARG 0 unnoticed · case 02
A code object ending in a zero-valued prefix is accepted as complete.
Wordcode prefixes: trailing EXTENDED_ARG 0 unnoticed · case 03
A code object ending in a zero-valued prefix is accepted as complete.
Wordcode prefixes: trailing EXTENDED_ARG 0 unnoticed · case 04
A code object ending in a zero-valued prefix is accepted as complete.
Wordcode prefixes: trailing EXTENDED_ARG 0 unnoticed · case 05
A code object ending in a zero-valued prefix is accepted as complete.
Stack map frames: first frame offset shifted by one · case 01
Every frame is attached to the instruction after the one it describes.
Stack map frames: first frame offset shifted by one · case 02
Every frame is attached to the instruction after the one it describes.
Stack map frames: first frame offset shifted by one · case 03
Every frame is attached to the instruction after the one it describes.
Stack map frames: first frame offset shifted by one · case 04
Every frame is attached to the instruction after the one it describes.
Stack map frames: first frame offset shifted by one · case 05
Every frame is attached to the instruction after the one it describes.
Stack map frames: one-item frame delta not rebased · case 01
same_locals_1_stack_item frames land 64 bytes too far.
Stack map frames: one-item frame delta not rebased · case 02
same_locals_1_stack_item frames land 64 bytes too far.
Stack map frames: one-item frame delta not rebased · case 03
same_locals_1_stack_item frames land 64 bytes too far.
Stack map frames: one-item frame delta not rebased · case 04
same_locals_1_stack_item frames land 64 bytes too far.
Stack map frames: one-item frame delta not rebased · case 05
same_locals_1_stack_item frames land 64 bytes too far.
Stack map frames: extended one-item frame rejected as reserved · case 01
Methods using frame type 247 fail verification.
Stack map frames: extended one-item frame rejected as reserved · case 02
Methods using frame type 247 fail verification.
Stack map frames: extended one-item frame rejected as reserved · case 03
Methods using frame type 247 fail verification.
Stack map frames: extended one-item frame rejected as reserved · case 04
Methods using frame type 247 fail verification.
Stack map frames: extended one-item frame rejected as reserved · case 05
Methods using frame type 247 fail verification.
Stack map frames: chop count reversed · case 01
Type 248 removes one local instead of three and 250 removes three instead of one.
Stack map frames: chop count reversed · case 02
Type 248 removes one local instead of three and 250 removes three instead of one.
Stack map frames: chop count reversed · case 03
Type 248 removes one local instead of three and 250 removes three instead of one.
Stack map frames: chop count reversed · case 04
Type 248 removes one local instead of three and 250 removes three instead of one.
Stack map frames: chop count reversed · case 05
Type 248 removes one local instead of three and 250 removes three instead of one.
Stack map frames: append mutates earlier frames' locals · case 01
Frames recorded before an append frame suddenly list the appended locals too.
Stack map frames: append mutates earlier frames' locals · case 02
Frames recorded before an append frame suddenly list the appended locals too.
Stack map frames: append mutates earlier frames' locals · case 03
Frames recorded before an append frame suddenly list the appended locals too.
Stack map frames: append mutates earlier frames' locals · case 04
Frames recorded before an append frame suddenly list the appended locals too.
Stack map frames: append mutates earlier frames' locals · case 05
Frames recorded before an append frame suddenly list the appended locals too.
Stack map frames: append frames add one local too few · case 01
Type 252 frames add nothing and 254 frames drop their last local.
Stack map frames: append frames add one local too few · case 02
Type 252 frames add nothing and 254 frames drop their last local.
Stack map frames: append frames add one local too few · case 03
Type 252 frames add nothing and 254 frames drop their last local.
Stack map frames: append frames add one local too few · case 04
Type 252 frames add nothing and 254 frames drop their last local.
Stack map frames: append frames add one local too few · case 05
Type 252 frames add nothing and 254 frames drop their last local.
Insertion barrier: barrier shades the source object · case 01
An object stored into an already-black object is freed while still referenced.
Insertion barrier: barrier shades the source object · case 02
An object stored into an already-black object is freed while still referenced.
Insertion barrier: barrier shades the source object · case 03
An object stored into an already-black object is freed while still referenced.
Insertion barrier: barrier shades the source object · case 04
An object stored into an already-black object is freed while still referenced.
Insertion barrier: barrier shades the source object · case 05
An object stored into an already-black object is freed while still referenced.
Insertion barrier: objects allocated during marking start white · case 01
Freshly allocated objects are swept at the end of the cycle in which they were created.
Insertion barrier: objects allocated during marking start white · case 02
Freshly allocated objects are swept at the end of the cycle in which they were created.
Insertion barrier: objects allocated during marking start white · case 03
Freshly allocated objects are swept at the end of the cycle in which they were created.
Insertion barrier: objects allocated during marking start white · case 04
Freshly allocated objects are swept at the end of the cycle in which they were created.
Insertion barrier: objects allocated during marking start white · case 05
Freshly allocated objects are swept at the end of the cycle in which they were created.
Insertion barrier: marks survive into the next cycle · case 01
Objects that died since the previous cycle are never freed.
Insertion barrier: marks survive into the next cycle · case 02
Objects that died since the previous cycle are never freed.
Insertion barrier: marks survive into the next cycle · case 03
Objects that died since the previous cycle are never freed.
Insertion barrier: marks survive into the next cycle · case 04
Objects that died since the previous cycle are never freed.
Insertion barrier: marks survive into the next cycle · case 05
Objects that died since the previous cycle are never freed.
Insertion barrier: finish discards the pending worklist · case 01
Children of objects still on the worklist are swept although they are reachable.
Insertion barrier: finish discards the pending worklist · case 02
Children of objects still on the worklist are swept although they are reachable.
Insertion barrier: finish discards the pending worklist · case 03
Children of objects still on the worklist are swept although they are reachable.
Insertion barrier: finish discards the pending worklist · case 04
Children of objects still on the worklist are swept although they are reachable.
Insertion barrier: finish discards the pending worklist · case 05
Children of objects still on the worklist are swept although they are reachable.
Insertion barrier: roots added during marking stay white · case 01
An object that becomes a root mid-cycle is freed at finish.
Insertion barrier: roots added during marking stay white · case 02
An object that becomes a root mid-cycle is freed at finish.
Insertion barrier: roots added during marking stay white · case 03
An object that becomes a root mid-cycle is freed at finish.
Insertion barrier: roots added during marking stay white · case 04
An object that becomes a root mid-cycle is freed at finish.
Insertion barrier: roots added during marking stay white · case 05
An object that becomes a root mid-cycle is freed at finish.
Reference counting: old value released before the new value is retained · case 01
Self-assignment or storing a child of the old value frees the object being stored.
Reference counting: old value released before the new value is retained · case 02
Self-assignment or storing a child of the old value frees the object being stored.
Reference counting: old value released before the new value is retained · case 03
Self-assignment or storing a child of the old value frees the object being stored.
Reference counting: old value released before the new value is retained · case 04
Self-assignment or storing a child of the old value frees the object being stored.
Reference counting: old value released before the new value is retained · case 05
Self-assignment or storing a child of the old value frees the object being stored.
Reference counting: destroying an object leaks its children · case 01
Objects reachable only from a destroyed object keep positive counts forever.
Reference counting: destroying an object leaks its children · case 02
Objects reachable only from a destroyed object keep positive counts forever.
Reference counting: destroying an object leaks its children · case 03
Objects reachable only from a destroyed object keep positive counts forever.
Reference counting: destroying an object leaks its children · case 04
Objects reachable only from a destroyed object keep positive counts forever.
Reference counting: destroying an object leaks its children · case 05
Objects reachable only from a destroyed object keep positive counts forever.
Reference counting: weak upgrade resurrects destroyed objects · case 01
upgrade() on an object whose last strong reference is gone succeeds and returns a destroyed object.
Reference counting: weak upgrade resurrects destroyed objects · case 02
upgrade() on an object whose last strong reference is gone succeeds and returns a destroyed object.
Reference counting: weak upgrade resurrects destroyed objects · case 03
upgrade() on an object whose last strong reference is gone succeeds and returns a destroyed object.
Reference counting: weak upgrade resurrects destroyed objects · case 04
upgrade() on an object whose last strong reference is gone succeeds and returns a destroyed object.
Reference counting: weak upgrade resurrects destroyed objects · case 05
upgrade() on an object whose last strong reference is gone succeeds and returns a destroyed object.
Reference counting: control block freed while weak references remain · case 01
A later upgrade or unweak through a surviving weak reference touches freed memory.
Reference counting: control block freed while weak references remain · case 02
A later upgrade or unweak through a surviving weak reference touches freed memory.
Reference counting: control block freed while weak references remain · case 03
A later upgrade or unweak through a surviving weak reference touches freed memory.
Reference counting: control block freed while weak references remain · case 04
A later upgrade or unweak through a surviving weak reference touches freed memory.
Reference counting: control block freed while weak references remain · case 05
A later upgrade or unweak through a surviving weak reference touches freed memory.
Reference counting: dropping the last weak reference frees a live object · case 01
A strongly held object is deallocated when its last weak observer goes away.
Reference counting: dropping the last weak reference frees a live object · case 02
A strongly held object is deallocated when its last weak observer goes away.
Reference counting: dropping the last weak reference frees a live object · case 03
A strongly held object is deallocated when its last weak observer goes away.
Reference counting: dropping the last weak reference frees a live object · case 04
A strongly held object is deallocated when its last weak observer goes away.
Reference counting: dropping the last weak reference frees a live object · case 05
A strongly held object is deallocated when its last weak observer goes away.
Trial deletion: edges into already-gray objects not subtracted · case 01
Garbage cycles keep a phantom count from the edge that closes the cycle and are never collected.
Trial deletion: edges into already-gray objects not subtracted · case 02
Garbage cycles keep a phantom count from the edge that closes the cycle and are never collected.
Trial deletion: edges into already-gray objects not subtracted · case 03
Garbage cycles keep a phantom count from the edge that closes the cycle and are never collected.
Trial deletion: edges into already-gray objects not subtracted · case 04
Garbage cycles keep a phantom count from the edge that closes the cycle and are never collected.
Trial deletion: edges into already-gray objects not subtracted · case 05
Garbage cycles keep a phantom count from the edge that closes the cycle and are never collected.
Trial deletion: re-blackening does not restore counts · case 01
Live objects inspected by the collector come out with permanently lowered reference counts.
Trial deletion: re-blackening does not restore counts · case 02
Live objects inspected by the collector come out with permanently lowered reference counts.
Trial deletion: re-blackening does not restore counts · case 03
Live objects inspected by the collector come out with permanently lowered reference counts.
Trial deletion: re-blackening does not restore counts · case 04
Live objects inspected by the collector come out with permanently lowered reference counts.
Trial deletion: re-blackening does not restore counts · case 05
Live objects inspected by the collector come out with permanently lowered reference counts.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗