Skip to content

v0.1.3

  • v0.1.3
  • a526b22
  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
  • Choose a tag to compare

  • v0.1.3
  • a526b22
  • Choose a tag to compare

  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
@srijs srijs tagged this 25 Sep 13:53
sha1dc 0.1.3 hashes 9–11% faster than 0.1.2 on large inputs, and 32–39%
faster on messages of up to 64 bytes (measured Apple M4, Xeon Platinum
8488C and Graviton4).

Notable changes:

- Benchmarks now run on data that does not repeat, and on new machines
  (#16, #19). The published cost of detection moved to 19–28% of
  throughput as a result, not because the code got slower.
- The UBC check's prefix is chosen by search: greedy, then local search,
  then variable neighbourhood search (#20, #24), with bit tests per lane
  and a NEON tail emitted as a guarded block per DV (#15, #23, #27).
- The generated forms are tested against upstream's C check (#22), and
  the hardware's states are kept at steps 60 and 64 (#21).
- The per-block scratch buffer lives in the stack frame instead of the
  hasher, so both hashers shrink from 472 to 112 bytes (#17).
- Vector loads and stores are consolidated and go through a single helper,
  reducing `unsafe` code and making it easier to audit (#18).
Assets 2
Loading