0.13.2
Version 0.13.2
Changelog
- Added
BmHash128Throughput(128-bit bounded-range throughput) and guarded the 64-/128-bit benchmark paths byHasGetHash64/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
BmHash64Throughputreporting bytes/s over two documented length distributions (Short ≤128 B, Web ≤4096 B) truncated to each upper bound; the per-exact-lengthBmHash64/BmHash128remain the latency view. Distributions are exported as thethroughput_distscontext. - Added a
comparecommand reporting per-case Δ% and a geomean between two datasets. - Made
tables/plot/compare/qualityaccept a bundle.tgzor a results JSON, positionally or via--results/--bundle. - Added
plot --kind(throughput/latency/all) and--scale(log-log/linear-log). - Expanded the benchmark
kFullSizesand swept latency over the full set (dense ns-vs-length latency curve). - Added a
qualitycommand generating the overview + SMHasher3 Results tables fromhash_algorithms.jsonand a measured bundle;--checkgates them. - Added a
consistencycommand verifying same-source-SHA bundles agree on SMHasher3 verdicts. - Fixed SMHasher3 parsing: a bad name or crash reads as
ERRORnot a falsePASS; score and failing families parse from the Summary; legacy names aliased. - Integrated
mbo/hash/measurementsas a normal dev package (still release-stripped) with aquality_sh_testgating the tables; test CI fetches the LFS bundles. - Added a
no-deps-on-measurementspre-commit guard. - Ported
mumbo(64-bit) to Starlark (hash.mumbo), byte-identical to C++;hash.bzlnow offersmumbo,dumbo, andfnv1a.
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