Commit ec31d57
committed
aarch64 reproduces the effects oracle now, so its allowance goes
The four ubuntu-24.04-arm cells on PR #86 fail verify_effects, and they fail by
AGREEING with x86_64. aarch64's accepted baseline 3ec1c31f no longer describes
what the architecture produces; what it produces is 544d29ca, which is
cpython_stdout_sha256 itself, with "0 of 882 numeric fields differ" against the
committed effects_component_stdout.txt.
WHY, AND IT IS THE SAME CAUSE THAT WAS WRITTEN DOWN
The 2026-09-03 acceptance said the deviation was "confined to the two
delay-line interpolators, consistent with fused multiply-add rounding" -- six
blocks, multitap 1/0/2, 1/2/1, 2/0/5, 2/2/1, 2/2/2 and pitchshift 1/-5/1.
AArch64 fuses by baseline where x86-64 does not without -mfma. 71b917e gave
every src/shared/ file that computes in float the fp-contract=off pragma, so
aarch64 stopped fusing and exactly those six blocks closed. The cause was
inferred in 2026-09-02 and is measured now.
WHAT MOVED, AND WHAT DID NOT
No stored digest moved. cpython_stdout_sha256 and circuitpython_stdout_sha256
are untouched, effects_component_stdout.txt is untouched, and x86_64, macOS and
Windows stay green on the same bytes they were green on before. The only hash
line this deletes is the ARM allowance, so the two-goldens rule does not come
into it: nothing was re-captured.
The allowance is REMOVED rather than set to the reference hash. With no entry
in cpython_stdout_sha256_by_arch, aarch64 is compared against
cpython_stdout_sha256 -- the gate on that architecture is now the oracle
agreement itself, which is strictly stronger than a baseline of its own.
SO A FUTURE ARM FAILURE STILL READS CORRECTLY
Removing the entry alone would have made a later aarch64 mismatch print "has no
accepted baseline yet ... not expected to match", which would be false: we know
it matched. cpython_stdout_sha256_reproduced_by records the agreement with its
date and the eight CI cells behind it (runs 35269077774 and 35269087728, Python
3.11-3.14 each), and verify_effects.py grows the branch that says an
architecture which agreed to the byte and stopped has had something change
under it, and should not be handed an allowance before that is explained.
Proven by planting the fault: one int16 in the committed reference moved by 1,
its hash re-derived so the file stays self-consistent, and the gate run with
platform.machine() forced to aarch64. It fails, names the moved field, and
prints the new branch. Restored after.
TWO NOTES THAT THE FILES HAD OUTRUN
docs/correctness-standard.md said the contraction difference "is a board-only
one", and verify_effects.py's docstring said the gate hashes sums and not PCM
and that strengthening it was not a unilateral edit. Both were true when
written and are not now: aarch64 is a desktop architecture that fuses, and
e304ae0 closed audioif#15 by putting an FNV-1a checksum on every probe line.
docs/building-wheels.md carries the resolution of the ARM section it opened.1 parent 71b917e commit ec31d57
4 files changed
Lines changed: 88 additions & 49 deletions
File tree
- docs
- tests/parity
- golden
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
107 | 112 | | |
108 | 113 | | |
109 | 114 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
188 | 194 | | |
189 | 195 | | |
190 | 196 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
13 | 14 | | |
14 | | - | |
15 | | - | |
16 | | - | |
| 15 | + | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
16 | 26 | | |
17 | 27 | | |
18 | 28 | | |
| |||
24 | 34 | | |
25 | 35 | | |
26 | 36 | | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
35 | 46 | | |
36 | 47 | | |
37 | 48 | | |
| |||
58 | 69 | | |
59 | 70 | | |
60 | 71 | | |
| 72 | + | |
| 73 | + | |
61 | 74 | | |
62 | 75 | | |
63 | 76 | | |
64 | | - | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
65 | 80 | | |
66 | 81 | | |
67 | 82 | | |
| |||
187 | 202 | | |
188 | 203 | | |
189 | 204 | | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
190 | 215 | | |
191 | 216 | | |
192 | 217 | | |
| |||
199 | 224 | | |
200 | 225 | | |
201 | 226 | | |
202 | | - | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
203 | 231 | | |
204 | 232 | | |
205 | 233 | | |
| |||
0 commit comments