FAILURE MAP

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 ↗
100840Executable case variants
20168Distinct failure mechanisms
302520Executed implementations
20168Open-access cases

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

Python · Standard library
REFERENCEFAILURE MECHANISMDOMAINACCESS
FA-89801

Arithmetic right shift loses the sign bit · case 01

asr of a negative value turns it positive.

Instruction set emulation● Open access↗
FA-89802

Arithmetic right shift loses the sign bit · case 02

asr of a negative value turns it positive.

Instruction set emulation◈ Members↗
FA-89803

Arithmetic right shift loses the sign bit · case 03

asr of a negative value turns it positive.

Instruction set emulation◈ Members↗
FA-89804

Arithmetic right shift loses the sign bit · case 04

asr of a negative value turns it positive.

Instruction set emulation◈ Members↗
FA-89805

Arithmetic right shift loses the sign bit · case 05

asr of a negative value turns it positive.

Instruction set emulation◈ Members↗
FA-89806

Logical shift carry taken after shifting · case 01

lsr reports bit 1 of the original value as carry.

Instruction set emulation● Open access↗
FA-89807

Logical shift carry taken after shifting · case 02

lsr reports bit 1 of the original value as carry.

Instruction set emulation◈ Members↗
FA-89808

Logical shift carry taken after shifting · case 03

lsr reports bit 1 of the original value as carry.

Instruction set emulation◈ Members↗
FA-89809

Logical shift carry taken after shifting · case 04

lsr reports bit 1 of the original value as carry.

Instruction set emulation◈ Members↗
FA-89810

Logical shift carry taken after shifting · case 05

lsr reports bit 1 of the original value as carry.

Instruction set emulation◈ Members↗
FA-89811

RAM mirrors decoded as separate memory · case 01

A byte written at 0x0801 is not visible at 0x0001.

Instruction set emulation● Open access↗
FA-89812

RAM mirrors decoded as separate memory · case 02

A byte written at 0x0801 is not visible at 0x0001.

Instruction set emulation◈ Members↗
FA-89813

RAM mirrors decoded as separate memory · case 03

A byte written at 0x0801 is not visible at 0x0001.

Instruction set emulation◈ Members↗
FA-89814

RAM mirrors decoded as separate memory · case 04

A byte written at 0x0801 is not visible at 0x0001.

Instruction set emulation◈ Members↗
FA-89815

RAM mirrors decoded as separate memory · case 05

A byte written at 0x0801 is not visible at 0x0001.

Instruction set emulation◈ Members↗
FA-89816

Video registers not mirrored · case 01

Writing 0x2008 does not affect register 0 and reading 0x3FF8 returns 0.

Instruction set emulation● Open access↗
FA-89817

Video registers not mirrored · case 02

Writing 0x2008 does not affect register 0 and reading 0x3FF8 returns 0.

Instruction set emulation◈ Members↗
FA-89818

Video registers not mirrored · case 03

Writing 0x2008 does not affect register 0 and reading 0x3FF8 returns 0.

Instruction set emulation◈ Members↗
FA-89819

Video registers not mirrored · case 04

Writing 0x2008 does not affect register 0 and reading 0x3FF8 returns 0.

Instruction set emulation◈ Members↗
FA-89820

Video registers not mirrored · case 05

Writing 0x2008 does not affect register 0 and reading 0x3FF8 returns 0.

Instruction set emulation◈ Members↗
FA-89821

Unmapped reads return zero · case 01

Reading unmapped space returns 0 instead of the last value on the data bus.

Instruction set emulation● Open access↗
FA-89822

Unmapped reads return zero · case 02

Reading unmapped space returns 0 instead of the last value on the data bus.

Instruction set emulation◈ Members↗
FA-89823

Unmapped reads return zero · case 03

Reading unmapped space returns 0 instead of the last value on the data bus.

Instruction set emulation◈ Members↗
FA-89824

Unmapped reads return zero · case 04

Reading unmapped space returns 0 instead of the last value on the data bus.

Instruction set emulation◈ Members↗
FA-89825

Unmapped reads return zero · case 05

Reading unmapped space returns 0 instead of the last value on the data bus.

Instruction set emulation◈ Members↗
FA-89826

16 KiB ROM not mirrored into the upper window · case 01

Reads from 0xC000 upward return bytes past the end of a 16 KiB ROM.

Instruction set emulation● Open access↗
FA-89827

16 KiB ROM not mirrored into the upper window · case 02

Reads from 0xC000 upward return bytes past the end of a 16 KiB ROM.

Instruction set emulation◈ Members↗
FA-89828

16 KiB ROM not mirrored into the upper window · case 03

Reads from 0xC000 upward return bytes past the end of a 16 KiB ROM.

Instruction set emulation◈ Members↗
FA-89829

16 KiB ROM not mirrored into the upper window · case 04

Reads from 0xC000 upward return bytes past the end of a 16 KiB ROM.

Instruction set emulation◈ Members↗
FA-89830

16 KiB ROM not mirrored into the upper window · case 05

Reads from 0xC000 upward return bytes past the end of a 16 KiB ROM.

Instruction set emulation◈ Members↗
FA-89831

Writes to unmapped space do not drive the bus · case 01

A read of unmapped space after an unmapped write returns an older bus value.

Instruction set emulation● Open access↗
FA-89832

Writes to unmapped space do not drive the bus · case 02

A read of unmapped space after an unmapped write returns an older bus value.

Instruction set emulation◈ Members↗
FA-89833

Writes to unmapped space do not drive the bus · case 03

A read of unmapped space after an unmapped write returns an older bus value.

Instruction set emulation◈ Members↗
FA-89834

Writes to unmapped space do not drive the bus · case 04

A read of unmapped space after an unmapped write returns an older bus value.

Instruction set emulation◈ Members↗
FA-89835

Writes to unmapped space do not drive the bus · case 05

A read of unmapped space after an unmapped write returns an older bus value.

Instruction set emulation◈ Members↗
FA-89836

Disabled SRAM still decoded · case 01

With SRAM disabled, reads of 0x6000-0x7FFF return memory contents instead of open bus.

Instruction set emulation● Open access↗
FA-89837

Disabled SRAM still decoded · case 02

With SRAM disabled, reads of 0x6000-0x7FFF return memory contents instead of open bus.

Instruction set emulation◈ Members↗
FA-89838

Disabled SRAM still decoded · case 03

With SRAM disabled, reads of 0x6000-0x7FFF return memory contents instead of open bus.

Instruction set emulation◈ Members↗
FA-89839

Disabled SRAM still decoded · case 04

With SRAM disabled, reads of 0x6000-0x7FFF return memory contents instead of open bus.

Instruction set emulation◈ Members↗
FA-89840

Disabled SRAM still decoded · case 05

With SRAM disabled, reads of 0x6000-0x7FFF return memory contents instead of open bus.

Instruction set emulation◈ Members↗
FA-89841

Relative-jump VM: JMP displacement measured from the opcode byte · case 01

Backward loops land two bytes early and re-execute the wrong instruction; forward jumps fall short.

Bytecode virtual machines● Open access↗
FA-89842

Relative-jump VM: JMP displacement measured from the opcode byte · case 02

Backward loops land two bytes early and re-execute the wrong instruction; forward jumps fall short.

Bytecode virtual machines◈ Members↗
FA-89843

Relative-jump VM: JMP displacement measured from the opcode byte · case 03

Backward loops land two bytes early and re-execute the wrong instruction; forward jumps fall short.

Bytecode virtual machines◈ Members↗
FA-89844

Relative-jump VM: JMP displacement measured from the opcode byte · case 04

Backward loops land two bytes early and re-execute the wrong instruction; forward jumps fall short.

Bytecode virtual machines◈ Members↗
FA-89845

Relative-jump VM: JMP displacement measured from the opcode byte · case 05

Backward loops land two bytes early and re-execute the wrong instruction; forward jumps fall short.

Bytecode virtual machines◈ Members↗
FA-89846

Relative-jump VM: JZ branches on a nonzero condition · case 01

Loops exit immediately and guard blocks run exactly when they should be skipped.

Bytecode virtual machines● Open access↗
FA-89847

Relative-jump VM: JZ branches on a nonzero condition · case 02

Loops exit immediately and guard blocks run exactly when they should be skipped.

Bytecode virtual machines◈ Members↗
FA-89848

Relative-jump VM: JZ branches on a nonzero condition · case 03

Loops exit immediately and guard blocks run exactly when they should be skipped.

Bytecode virtual machines◈ Members↗
FA-89849

Relative-jump VM: JZ branches on a nonzero condition · case 04

Loops exit immediately and guard blocks run exactly when they should be skipped.

Bytecode virtual machines◈ Members↗
FA-89850

Relative-jump VM: JZ branches on a nonzero condition · case 05

Loops exit immediately and guard blocks run exactly when they should be skipped.

Bytecode virtual machines◈ Members↗
FA-89851

Relative-jump VM: SUB subtracts second-from-top from top · case 01

Decrementing counters increase and swapped operands produce negated differences.

Bytecode virtual machines● Open access↗
FA-89852

Relative-jump VM: SUB subtracts second-from-top from top · case 02

Decrementing counters increase and swapped operands produce negated differences.

Bytecode virtual machines◈ Members↗
FA-89853

Relative-jump VM: SUB subtracts second-from-top from top · case 03

Decrementing counters increase and swapped operands produce negated differences.

Bytecode virtual machines◈ Members↗
FA-89854

Relative-jump VM: SUB subtracts second-from-top from top · case 04

Decrementing counters increase and swapped operands produce negated differences.

Bytecode virtual machines◈ Members↗
FA-89855

Relative-jump VM: SUB subtracts second-from-top from top · case 05

Decrementing counters increase and swapped operands produce negated differences.

Bytecode virtual machines◈ Members↗
FA-89856

Relative-jump VM: SWAP duplicates instead of exchanging · case 01

After SWAP both top slots hold the same value and the original top is lost.

Bytecode virtual machines● Open access↗
FA-89857

Relative-jump VM: SWAP duplicates instead of exchanging · case 02

After SWAP both top slots hold the same value and the original top is lost.

Bytecode virtual machines◈ Members↗
FA-89858

Relative-jump VM: SWAP duplicates instead of exchanging · case 03

After SWAP both top slots hold the same value and the original top is lost.

Bytecode virtual machines◈ Members↗
FA-89859

Relative-jump VM: SWAP duplicates instead of exchanging · case 04

After SWAP both top slots hold the same value and the original top is lost.

Bytecode virtual machines◈ Members↗
FA-89860

Relative-jump VM: SWAP duplicates instead of exchanging · case 05

After SWAP both top slots hold the same value and the original top is lost.

Bytecode virtual machines◈ Members↗
FA-89861

Relative-jump VM: fuel limit allows one extra instruction · case 01

A program given exactly one unit too little fuel still halts normally.

Bytecode virtual machines● Open access↗
FA-89862

Relative-jump VM: fuel limit allows one extra instruction · case 02

A program given exactly one unit too little fuel still halts normally.

Bytecode virtual machines◈ Members↗
FA-89863

Relative-jump VM: fuel limit allows one extra instruction · case 03

A program given exactly one unit too little fuel still halts normally.

Bytecode virtual machines◈ Members↗
FA-89864

Relative-jump VM: fuel limit allows one extra instruction · case 04

A program given exactly one unit too little fuel still halts normally.

Bytecode virtual machines◈ Members↗
FA-89865

Relative-jump VM: fuel limit allows one extra instruction · case 05

A program given exactly one unit too little fuel still halts normally.

Bytecode virtual machines◈ Members↗
FA-89866

JVM int32 opcodes: wraparound leaves 0x80000000 positive · case 01

Overflowing MAX_VALUE + 1 reports 2147483648 instead of MIN_VALUE.

Bytecode virtual machines● Open access↗
FA-89867

JVM int32 opcodes: wraparound leaves 0x80000000 positive · case 02

Overflowing MAX_VALUE + 1 reports 2147483648 instead of MIN_VALUE.

Bytecode virtual machines◈ Members↗
FA-89868

JVM int32 opcodes: wraparound leaves 0x80000000 positive · case 03

Overflowing MAX_VALUE + 1 reports 2147483648 instead of MIN_VALUE.

Bytecode virtual machines◈ Members↗
FA-89869

JVM int32 opcodes: wraparound leaves 0x80000000 positive · case 04

Overflowing MAX_VALUE + 1 reports 2147483648 instead of MIN_VALUE.

Bytecode virtual machines◈ Members↗
FA-89870

JVM int32 opcodes: wraparound leaves 0x80000000 positive · case 05

Overflowing MAX_VALUE + 1 reports 2147483648 instead of MIN_VALUE.

Bytecode virtual machines◈ Members↗
FA-89871

JVM int32 opcodes: idiv uses floor division · case 01

Negative quotients are one lower than the bytecode semantics require (-9 / 2 gives -5).

Bytecode virtual machines● Open access↗
FA-89872

JVM int32 opcodes: idiv uses floor division · case 02

Negative quotients are one lower than the bytecode semantics require (-9 / 2 gives -5).

Bytecode virtual machines◈ Members↗
FA-89873

JVM int32 opcodes: idiv uses floor division · case 03

Negative quotients are one lower than the bytecode semantics require (-9 / 2 gives -5).

Bytecode virtual machines◈ Members↗
FA-89874

JVM int32 opcodes: idiv uses floor division · case 04

Negative quotients are one lower than the bytecode semantics require (-9 / 2 gives -5).

Bytecode virtual machines◈ Members↗
FA-89875

JVM int32 opcodes: idiv uses floor division · case 05

Negative quotients are one lower than the bytecode semantics require (-9 / 2 gives -5).

Bytecode virtual machines◈ Members↗
FA-89876

JVM int32 opcodes: MIN_VALUE / -1 escapes the int range · case 01

Dividing MIN_VALUE by -1 yields 2147483648, a value no int slot can hold.

Bytecode virtual machines● Open access↗
FA-89877

JVM int32 opcodes: MIN_VALUE / -1 escapes the int range · case 02

Dividing MIN_VALUE by -1 yields 2147483648, a value no int slot can hold.

Bytecode virtual machines◈ Members↗
FA-89878

JVM int32 opcodes: MIN_VALUE / -1 escapes the int range · case 03

Dividing MIN_VALUE by -1 yields 2147483648, a value no int slot can hold.

Bytecode virtual machines◈ Members↗
FA-89879

JVM int32 opcodes: MIN_VALUE / -1 escapes the int range · case 04

Dividing MIN_VALUE by -1 yields 2147483648, a value no int slot can hold.

Bytecode virtual machines◈ Members↗
FA-89880

JVM int32 opcodes: MIN_VALUE / -1 escapes the int range · case 05

Dividing MIN_VALUE by -1 yields 2147483648, a value no int slot can hold.

Bytecode virtual machines◈ Members↗
FA-89881

JVM int32 opcodes: irem follows the divisor sign · case 01

Remainders of negative dividends come out positive (-10 % 3 gives 2).

Bytecode virtual machines● Open access↗
FA-89882

JVM int32 opcodes: irem follows the divisor sign · case 02

Remainders of negative dividends come out positive (-10 % 3 gives 2).

Bytecode virtual machines◈ Members↗
FA-89883

JVM int32 opcodes: irem follows the divisor sign · case 03

Remainders of negative dividends come out positive (-10 % 3 gives 2).

Bytecode virtual machines◈ Members↗
FA-89884

JVM int32 opcodes: irem follows the divisor sign · case 04

Remainders of negative dividends come out positive (-10 % 3 gives 2).

Bytecode virtual machines◈ Members↗
FA-89885

JVM int32 opcodes: irem follows the divisor sign · case 05

Remainders of negative dividends come out positive (-10 % 3 gives 2).

Bytecode virtual machines◈ Members↗
FA-89886

JVM int32 opcodes: ishl shifts by the full count · case 01

Shifting by 32 clears the value instead of leaving it unchanged.

Bytecode virtual machines● Open access↗
FA-89887

JVM int32 opcodes: ishl shifts by the full count · case 02

Shifting by 32 clears the value instead of leaving it unchanged.

Bytecode virtual machines◈ Members↗
FA-89888

JVM int32 opcodes: ishl shifts by the full count · case 03

Shifting by 32 clears the value instead of leaving it unchanged.

Bytecode virtual machines◈ Members↗
FA-89889

JVM int32 opcodes: ishl shifts by the full count · case 04

Shifting by 32 clears the value instead of leaving it unchanged.

Bytecode virtual machines◈ Members↗
FA-89890

JVM int32 opcodes: ishl shifts by the full count · case 05

Shifting by 32 clears the value instead of leaving it unchanged.

Bytecode virtual machines◈ Members↗
FA-89891

JVM int32 opcodes: iushr sign-extends · case 01

Unsigned right shifts of negative ints stay negative.

Bytecode virtual machines● Open access↗
FA-89892

JVM int32 opcodes: iushr sign-extends · case 02

Unsigned right shifts of negative ints stay negative.

Bytecode virtual machines◈ Members↗
FA-89893

JVM int32 opcodes: iushr sign-extends · case 03

Unsigned right shifts of negative ints stay negative.

Bytecode virtual machines◈ Members↗
FA-89894

JVM int32 opcodes: iushr sign-extends · case 04

Unsigned right shifts of negative ints stay negative.

Bytecode virtual machines◈ Members↗
FA-89895

JVM int32 opcodes: iushr sign-extends · case 05

Unsigned right shifts of negative ints stay negative.

Bytecode virtual machines◈ Members↗
FA-89896

Stack-depth verifier: dup_x1 accepted with one operand · case 01

A method using dup_x1 on a single-item stack verifies and later corrupts the frame.

Bytecode virtual machines● Open access↗
FA-89897

Stack-depth verifier: dup_x1 accepted with one operand · case 02

A method using dup_x1 on a single-item stack verifies and later corrupts the frame.

Bytecode virtual machines◈ Members↗
FA-89898

Stack-depth verifier: dup_x1 accepted with one operand · case 03

A method using dup_x1 on a single-item stack verifies and later corrupts the frame.

Bytecode virtual machines◈ Members↗
FA-89899

Stack-depth verifier: dup_x1 accepted with one operand · case 04

A method using dup_x1 on a single-item stack verifies and later corrupts the frame.

Bytecode virtual machines◈ Members↗
FA-89900

Stack-depth verifier: dup_x1 accepted with one operand · case 05

A method using dup_x1 on a single-item stack verifies and later corrupts the frame.

Bytecode virtual machines◈ Members↗

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 ↗