sha1dc 0.1.5 recompresses on the SHA-1 instructions, which makes it 2–4%
faster than 0.1.4 on large inputs on every machine with them: about 2% on
the Apple M4, Graviton4, Sapphire Rapids and Zen, and 4% on Ice Lake.
Detection now costs 16% to 22% of throughput, down from 18% to 23%.
Notable changes:
- A block that trips the filter is recompressed on the ARMv8 SHA-1
instructions or SHA-NI, from the boundary at step 60 or 64 in both
directions, where it used to take the portable compression (#36).
- The hasher keeps its buffer out of what the compression receives, and
tracks the buffered bytes by the total length alone (#37). The buffer
stays zero past its bytes, so finalizing writes only the 0x80 and the
length (#38).