Skip to content

0.13.2

Choose a tag to compare

@github-actions github-actions released this 16 Jul 23:53
· 145 commits to main since this release
1a161d9

Version 0.13.2

Changelog

  • Added BmHash128Throughput (128-bit bounded-range throughput) and guarded the 64-/128-bit benchmark paths by HasGetHash64/HasGetHash128.
  • Reworked the measurement report around the latency (ns at exact length) / throughput (GiB/s over the Short/Web bounded distributions) split: each renders as chart + table per hash width, absent sections dropped; the report re-distills a bundle from its raw on read, so old bundles still yield latency tables and bundles need no re-packing when the tool changes.
  • Reworked the hash mixed-length benchmark: dropped the hash-indexed key walk that collapsed into a rho-cycle (near-zero anomalies) and added BmHash64Throughput reporting bytes/s over two documented length distributions (Short ≤128 B, Web ≤4096 B) truncated to each upper bound; the per-exact-length BmHash64/BmHash128 remain the latency view. Distributions are exported as the throughput_dists context.
  • Added a compare command reporting per-case Δ% and a geomean between two datasets.
  • Made tables/plot/compare/quality accept a bundle .tgz or a results JSON, positionally or via --results/--bundle.
  • Added plot --kind (throughput/latency/all) and --scale (log-log/linear-log).
  • Expanded the benchmark kFullSizes and swept latency over the full set (dense ns-vs-length latency curve).
  • Added a quality command generating the overview + SMHasher3 Results tables from hash_algorithms.json and a measured bundle; --check gates them.
  • Added a consistency command verifying same-source-SHA bundles agree on SMHasher3 verdicts.
  • Fixed SMHasher3 parsing: a bad name or crash reads as ERROR not a false PASS; score and failing families parse from the Summary; legacy names aliased.
  • Integrated mbo/hash/measurements as a normal dev package (still release-stripped) with a quality_sh_test gating the tables; test CI fetches the LFS bundles.
  • Added a no-deps-on-measurements pre-commit guard.
  • Ported mumbo (64-bit) to Starlark (hash.mumbo), byte-identical to C++; hash.bzl now offers mumbo, dumbo, and fnv1a.

For Bazel MODULES.bazel

bazel_dep(name = "helly25_mbo", version = "0.13.2")

Using the provided LLVM

Copy llvm.MODULE.bazel to your repository's root directory and add the following line to your MODULES.bazel file or paste the whole contents into it.

include("//:llvm.MODULE.bazel")

Using the provided development modules

Copy dev.MODULE.bazel to your repository's root directory and add the following line to your MODULES.bazel file or paste the whole contents into it. It provides the dev-only Hedron compile-commands extractor (generates compile_commands.json for clangd) and depend_on_what_you_use.

include("//:dev.MODULE.bazel")

What's Changed

  • Bump version from 0.13.1 to 0.13.2 by @helly25 in #254
  • feat(hash): generate the SMHasher3 Results table (+ compact column, parser fix) by @helly25 in #255
  • feat(hash): generate the README quality tables from JSON + a measured bundle; measurements as a dev package by @helly25 in #256
  • feat(hash): port mumbo to Starlark (hash.mumbo) by @helly25 in #257
  • feat(hash): add compare command, bundle inputs, and plot --kind/--scale by @helly25 in #258
  • feat(hash): rework hash benchmark - fix latency, add bounded-range throughput by @helly25 in #259
  • feat(hash): latency + throughput (Short/Web) rendering; 128-bit throughput by @helly25 in #260
  • Final benchmark visualizations for 0.13.2 release by @helly25 in #261
  • Add docs for the mbo/diff sub-library by @helly25 in #262
  • More docs and benchmark options by @helly25 in #263
  • Show extra compiler config and flags by @helly25 in #264

Full Changelog: 0.13.1...0.13.2