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
Generators: generator survives an uncaught throw · case 01
After throw() propagates out, next() resumes the dead frame and faults.
Generators: generator survives an uncaught throw · case 02
After throw() propagates out, next() resumes the dead frame and faults.
Generators: generator survives an uncaught throw · case 03
After throw() propagates out, next() resumes the dead frame and faults.
Generators: generator survives an uncaught throw · case 04
After throw() propagates out, next() resumes the dead frame and faults.
Generators: generator survives an uncaught throw · case 05
After throw() propagates out, next() resumes the dead frame and faults.
Generators: yielded value left on the operand stack · case 01
Arithmetic after resumption combines the sent value with the stale yielded value.
Generators: yielded value left on the operand stack · case 02
Arithmetic after resumption combines the sent value with the stale yielded value.
Generators: yielded value left on the operand stack · case 03
Arithmetic after resumption combines the sent value with the stale yielded value.
Generators: yielded value left on the operand stack · case 04
Arithmetic after resumption combines the sent value with the stale yielded value.
Generators: yielded value left on the operand stack · case 05
Arithmetic after resumption combines the sent value with the stale yielded value.
Peephole optimizer: folds to -32768 refused · case 01
Constant expressions producing the int16 minimum are left unfolded.
Peephole optimizer: folds to -32768 refused · case 02
Constant expressions producing the int16 minimum are left unfolded.
Peephole optimizer: folds to -32768 refused · case 03
Constant expressions producing the int16 minimum are left unfolded.
Peephole optimizer: folds to -32768 refused · case 04
Constant expressions producing the int16 minimum are left unfolded.
Peephole optimizer: folds to -32768 refused · case 05
Constant expressions producing the int16 minimum are left unfolded.
Peephole optimizer: any jump followed by a label deleted · case 01
A jmp that skips a labelled block is removed, so the skipped code now executes.
Peephole optimizer: any jump followed by a label deleted · case 02
A jmp that skips a labelled block is removed, so the skipped code now executes.
Peephole optimizer: any jump followed by a label deleted · case 03
A jmp that skips a labelled block is removed, so the skipped code now executes.
Peephole optimizer: any jump followed by a label deleted · case 04
A jmp that skips a labelled block is removed, so the skipped code now executes.
Peephole optimizer: any jump followed by a label deleted · case 05
A jmp that skips a labelled block is removed, so the skipped code now executes.
Peephole optimizer: code after jmp kept alive · case 01
Unreachable instructions after unconditional jumps survive and block jmp-to-next removal.
Peephole optimizer: code after jmp kept alive · case 02
Unreachable instructions after unconditional jumps survive and block jmp-to-next removal.
Peephole optimizer: code after jmp kept alive · case 03
Unreachable instructions after unconditional jumps survive and block jmp-to-next removal.
Peephole optimizer: code after jmp kept alive · case 04
Unreachable instructions after unconditional jumps survive and block jmp-to-next removal.
Peephole optimizer: code after jmp kept alive · case 05
Unreachable instructions after unconditional jumps survive and block jmp-to-next removal.
Peephole optimizer: division folded with floor semantics · case 01
Folded code computes -9 / 2 as -5 while the interpreter computes -4.
Peephole optimizer: division folded with floor semantics · case 02
Folded code computes -9 / 2 as -5 while the interpreter computes -4.
Peephole optimizer: division folded with floor semantics · case 03
Folded code computes -9 / 2 as -5 while the interpreter computes -4.
Peephole optimizer: division folded with floor semantics · case 04
Folded code computes -9 / 2 as -5 while the interpreter computes -4.
Peephole optimizer: division folded with floor semantics · case 05
Folded code computes -9 / 2 as -5 while the interpreter computes -4.
Numeric for loop: float limits truncated toward zero · case 01
for i = -5, -2.5 runs to -2, one iteration past the limit.
Numeric for loop: float limits truncated toward zero · case 02
for i = -5, -2.5 runs to -2, one iteration past the limit.
Numeric for loop: float limits truncated toward zero · case 03
for i = -5, -2.5 runs to -2, one iteration past the limit.
Numeric for loop: float limits truncated toward zero · case 04
for i = -5, -2.5 runs to -2, one iteration past the limit.
Numeric for loop: float limits truncated toward zero · case 05
for i = -5, -2.5 runs to -2, one iteration past the limit.
Numeric for loop: descending loops skipped · case 01
for i = 10, 1, -3 never runs.
Numeric for loop: descending loops skipped · case 02
for i = 10, 1, -3 never runs.
Numeric for loop: descending loops skipped · case 03
for i = 10, 1, -3 never runs.
Numeric for loop: descending loops skipped · case 04
for i = 10, 1, -3 never runs.
Numeric for loop: descending loops skipped · case 05
for i = 10, 1, -3 never runs.
Numeric for loop: negative-step iteration count negative · case 01
Descending loops run zero times or stop early.
Numeric for loop: negative-step iteration count negative · case 02
Descending loops run zero times or stop early.
Numeric for loop: negative-step iteration count negative · case 03
Descending loops run zero times or stop early.
Numeric for loop: negative-step iteration count negative · case 04
Descending loops run zero times or stop early.
Numeric for loop: negative-step iteration count negative · case 05
Descending loops run zero times or stop early.
Numeric for loop: last iteration dropped · case 01
for i = 1, 4 yields 1, 2, 3.
Numeric for loop: last iteration dropped · case 02
for i = 1, 4 yields 1, 2, 3.
Numeric for loop: last iteration dropped · case 03
for i = 1, 4 yields 1, 2, 3.
Numeric for loop: last iteration dropped · case 04
for i = 1, 4 yields 1, 2, 3.
Numeric for loop: last iteration dropped · case 05
for i = 1, 4 yields 1, 2, 3.
Numeric for loop: float loops always test ascending · case 01
Descending float loops execute zero iterations.
Numeric for loop: float loops always test ascending · case 02
Descending float loops execute zero iterations.
Numeric for loop: float loops always test ascending · case 03
Descending float loops execute zero iterations.
Numeric for loop: float loops always test ascending · case 04
Descending float loops execute zero iterations.
Numeric for loop: float loops always test ascending · case 05
Descending float loops execute zero iterations.
Switch dispatch: four padding bytes when already aligned · case 01
Switches whose operands already start on a 4-byte boundary read every word four bytes late.
Switch dispatch: four padding bytes when already aligned · case 02
Switches whose operands already start on a 4-byte boundary read every word four bytes late.
Switch dispatch: four padding bytes when already aligned · case 03
Switches whose operands already start on a 4-byte boundary read every word four bytes late.
Switch dispatch: four padding bytes when already aligned · case 04
Switches whose operands already start on a 4-byte boundary read every word four bytes late.
Switch dispatch: four padding bytes when already aligned · case 05
Switches whose operands already start on a 4-byte boundary read every word four bytes late.
Switch dispatch: table offsets added to the aligned operand address · case 01
Matching cases land a few bytes past their intended targets.
Switch dispatch: table offsets added to the aligned operand address · case 02
Matching cases land a few bytes past their intended targets.
Switch dispatch: table offsets added to the aligned operand address · case 03
Matching cases land a few bytes past their intended targets.
Switch dispatch: table offsets added to the aligned operand address · case 04
Matching cases land a few bytes past their intended targets.
Switch dispatch: table offsets added to the aligned operand address · case 05
Matching cases land a few bytes past their intended targets.
Switch dispatch: table indexed by key without subtracting low · case 01
Tables with a nonzero low bound select the wrong case or run off the operands.
Switch dispatch: table indexed by key without subtracting low · case 02
Tables with a nonzero low bound select the wrong case or run off the operands.
Switch dispatch: table indexed by key without subtracting low · case 03
Tables with a nonzero low bound select the wrong case or run off the operands.
Switch dispatch: table indexed by key without subtracting low · case 04
Tables with a nonzero low bound select the wrong case or run off the operands.
Switch dispatch: table indexed by key without subtracting low · case 05
Tables with a nonzero low bound select the wrong case or run off the operands.
Switch dispatch: high bound handled by default · case 01
The last case of every tableswitch is unreachable.
Switch dispatch: high bound handled by default · case 02
The last case of every tableswitch is unreachable.
Switch dispatch: high bound handled by default · case 03
The last case of every tableswitch is unreachable.
Switch dispatch: high bound handled by default · case 04
The last case of every tableswitch is unreachable.
Switch dispatch: high bound handled by default · case 05
The last case of every tableswitch is unreachable.
Switch dispatch: duplicate lookupswitch keys accepted · case 01
A lookupswitch with a repeated match value verifies and dispatches ambiguously.
Switch dispatch: duplicate lookupswitch keys accepted · case 02
A lookupswitch with a repeated match value verifies and dispatches ambiguously.
Switch dispatch: duplicate lookupswitch keys accepted · case 03
A lookupswitch with a repeated match value verifies and dispatches ambiguously.
Switch dispatch: duplicate lookupswitch keys accepted · case 04
A lookupswitch with a repeated match value verifies and dispatches ambiguously.
Switch dispatch: duplicate lookupswitch keys accepted · case 05
A lookupswitch with a repeated match value verifies and dispatches ambiguously.
Wordcode prefixes: only the last EXTENDED_ARG counts · case 01
Arguments needing two or more prefixes lose their high bytes.
Wordcode prefixes: only the last EXTENDED_ARG counts · case 02
Arguments needing two or more prefixes lose their high bytes.
Wordcode prefixes: only the last EXTENDED_ARG counts · case 03
Arguments needing two or more prefixes lose their high bytes.
Wordcode prefixes: only the last EXTENDED_ARG counts · case 04
Arguments needing two or more prefixes lose their high bytes.
Wordcode prefixes: only the last EXTENDED_ARG counts · case 05
Arguments needing two or more prefixes lose their high bytes.
Wordcode prefixes: prefix leaks into following instructions · case 01
Every instruction after a prefixed one gets an inflated argument.
Wordcode prefixes: prefix leaks into following instructions · case 02
Every instruction after a prefixed one gets an inflated argument.
Wordcode prefixes: prefix leaks into following instructions · case 03
Every instruction after a prefixed one gets an inflated argument.
Wordcode prefixes: prefix leaks into following instructions · case 04
Every instruction after a prefixed one gets an inflated argument.
Wordcode prefixes: prefix leaks into following instructions · case 05
Every instruction after a prefixed one gets an inflated argument.
Wordcode prefixes: forward jumps measured from the jump itself · case 01
JUMP_FORWARD lands one instruction early.
Wordcode prefixes: forward jumps measured from the jump itself · case 02
JUMP_FORWARD lands one instruction early.
Wordcode prefixes: forward jumps measured from the jump itself · case 03
JUMP_FORWARD lands one instruction early.
Wordcode prefixes: forward jumps measured from the jump itself · case 04
JUMP_FORWARD lands one instruction early.
Wordcode prefixes: forward jumps measured from the jump itself · case 05
JUMP_FORWARD lands one instruction early.
Wordcode prefixes: absolute jump targets in instruction units · case 01
Absolute jumps land at half their intended byte offset.
Wordcode prefixes: absolute jump targets in instruction units · case 02
Absolute jumps land at half their intended byte offset.
Wordcode prefixes: absolute jump targets in instruction units · case 03
Absolute jumps land at half their intended byte offset.
Wordcode prefixes: absolute jump targets in instruction units · case 04
Absolute jumps land at half their intended byte offset.
Wordcode prefixes: absolute jump targets in instruction units · case 05
Absolute jumps land at half their intended byte offset.
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 ↗