FAILURE MAP
← Case archive

FA-9106 / Build systems / Open access

Hermetic action fingerprint: Different compilers collide in the action key · case 01

Different compilers collide in the action key.

Verified by executionVariant 1 · 24 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The implementation substitutes None, for compiler,, so different compilers collide in the action key.

VERIFIED REPAIR

Retain the full compiler identity.

Unsuccessful approach: The attempted repair substitutes compiler[:1],. Fixture 1 still yields ('c', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux') instead of ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux').

Case contract

Return a tuple of compiler, ordered arguments, sorted environment pairs, sorted input digest pairs, and target platform; argument order and duplicate arguments matter.

Why this case matters

An offline model of hermetic action fingerprint, suitable for testing build and release tooling without external services.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(compiler, args, env, inputs, platform):
    return (None, tuple(args), tuple(sorted(env.items())), tuple(sorted(inputs.items())), platform)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve('cc0', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 2', solve('cc1', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 3', solve('cc0', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 4', solve('cc1', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 5', solve('cc0', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 6', solve('cc1', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 7', solve('cc0', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 8', solve('cc1', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 9', solve('cc0', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 10', solve('cc1', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 11', solve('cc0', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 12', solve('cc1', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 13', solve('cc0', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 14', solve('cc1', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 15', solve('cc0', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 16', solve('cc1', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 17', solve('cc0', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 18', solve('cc1', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 19', solve('cc0', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 20', solve('cc1', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 21', solve('cc0', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 22', solve('cc1', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 23', solve('cc0', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 24', solve('cc1', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fixture 1[None, ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 2[None, ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 3[None, ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 4[None, ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed
fixture 5[None, ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 6[None, ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 7[None, ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 8[None, ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed
fixture 9[None, ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 10[None, ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 11[None, ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 12[None, ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed
fixture 13[None, ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 14[None, ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 15[None, ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 16[None, ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed
fixture 17[None, ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 18[None, ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 19[None, ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 20[None, ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed
fixture 21[None, ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 22[None, ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 23[None, ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 24[None, ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed

SHA-256 / 12a39f6d5efe12ac20a302bfd5c5082ff671f3cf67fe288b8be323154b14c722

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(compiler, args, env, inputs, platform):
    return (compiler[:1], tuple(args), tuple(sorted(env.items())), tuple(sorted(inputs.items())), platform)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve('cc0', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 2', solve('cc1', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 3', solve('cc0', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 4', solve('cc1', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 5', solve('cc0', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 6', solve('cc1', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 7', solve('cc0', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 8', solve('cc1', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 9', solve('cc0', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 10', solve('cc1', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 11', solve('cc0', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 12', solve('cc1', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 13', solve('cc0', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 14', solve('cc1', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 15', solve('cc0', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 16', solve('cc1', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 17', solve('cc0', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 18', solve('cc1', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 19', solve('cc0', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 20', solve('cc1', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 21', solve('cc0', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 22', solve('cc1', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 23', solve('cc0', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 24', solve('cc1', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fixture 1['c', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 2['c', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 3['c', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 4['c', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed
fixture 5['c', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 6['c', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 7['c', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 8['c', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed
fixture 9['c', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 10['c', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 11['c', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 12['c', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed
fixture 13['c', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 14['c', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 15['c', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 16['c', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed
fixture 17['c', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 18['c', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 19['c', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 20['c', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed
fixture 21['c', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Failed
fixture 22['c', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Failed
fixture 23['c', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Failed
fixture 24['c', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Failed

SHA-256 / e292f9a5b1c0a7adb8c5707ce22d90aae3d985971d5e4f1f684993f4d4a3ce98

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(compiler, args, env, inputs, platform):
    return (compiler, tuple(args), tuple(sorted(env.items())), tuple(sorted(inputs.items())), platform)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve('cc0', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 2', solve('cc1', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 3', solve('cc0', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 4', solve('cc1', ['-Ione', '-Itwo'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 5', solve('cc0', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 6', solve('cc1', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 7', solve('cc0', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'linux'), ('cc0', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 8', solve('cc1', ['-Ione', '-Itwo'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'arm'), ('cc1', ('-Ione', '-Itwo'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 9', solve('cc0', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 10', solve('cc1', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 11', solve('cc0', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 12', solve('cc1', ['-Itwo', '-Ione'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 13', solve('cc0', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 14', solve('cc1', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 15', solve('cc0', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'linux'), ('cc0', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 16', solve('cc1', ['-Itwo', '-Ione'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'arm'), ('cc1', ('-Itwo', '-Ione'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 17', solve('cc0', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 18', solve('cc1', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 19', solve('cc0', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 20', solve('cc1', ['-v', '-v'], {'Z': '0', 'A': '1'}, {'a': '9'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
check('fixture 21', solve('cc0', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'linux'))
check('fixture 22', solve('cc1', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'b': '2', 'a': '1'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '1'), ('b', '2')), 'arm'))
check('fixture 23', solve('cc0', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'linux'), ('cc0', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'linux'))
check('fixture 24', solve('cc1', ['-v', '-v'], {'A': '1', 'Z': '0'}, {'a': '9'}, 'arm'), ('cc1', ('-v', '-v'), (('A', '1'), ('Z', '0')), (('a', '9'),), 'arm'))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fixture 1['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Passed
fixture 2['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Passed
fixture 3['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Passed
fixture 4['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Passed
fixture 5['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Passed
fixture 6['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Passed
fixture 7['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Passed
fixture 8['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Ione', '-Itwo'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Passed
fixture 9['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Passed
fixture 10['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Passed
fixture 11['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Passed
fixture 12['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Passed
fixture 13['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Passed
fixture 14['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Passed
fixture 15['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Passed
fixture 16['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-Itwo', '-Ione'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Passed
fixture 17['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Passed
fixture 18['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Passed
fixture 19['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Passed
fixture 20['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Passed
fixture 21['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'linux']Passed
fixture 22['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '1'], ['b', '2']], 'arm']Passed
fixture 23['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']['cc0', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'linux']Passed
fixture 24['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']['cc1', ['-v', '-v'], [['A', '1'], ['Z', '0']], [['a', '9']], 'arm']Passed

SHA-256 / 96df5b6978d7f36af612c7af17b859566c271bff5abd69feb4fd1c2c11e826ad

Verification & scope

This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:38:27.171256+00:00.

Case digest / 5dc8acca676d3688237e3eb5b8f94de89c25bd40ad030d74b2da88b58937a6b4