Files
enricobuehler bd987d373e chore(deps): criterion 0.5 -> 0.8 (dev-only, benches)
Dev-dependency of punktfunk-core only — it ships in nothing. `default-features =
false, features = ["cargo_bench_support"]` carries over unchanged; that feature
still exists in 0.8 and still keeps plotters/rayon out of a headless CI run.

One source change, and it is a lint issue rather than an API one.
`criterion::black_box` survives in 0.8 but is `#[deprecated]` — it now just
forwards to `std::hint::black_box` — and benches ARE compiled by
`cargo clippy --workspace --all-targets -- -D warnings`, so keeping the criterion
import would have turned a deprecation warning into a failed lint gate. The
bench imports the std one directly.

What CI actually consumes from criterion is the on-disk result layout, so that
was checked rather than assumed: 0.8 still writes
`target/criterion/<group>/<id>/new/estimates.json`, and the key
scripts/bench/compare.py reads — `median.point_estimate` — is still there:

  $ cargo bench -p punktfunk-core --bench pipeline -- --warm-up-time 1 --measurement-time 3
  ... 12/12 benchmarks reported, e.g. pipeline/gf16/1048576  thrpt: [537 MiB/s 540 MiB/s 542 MiB/s]
  $ find target/criterion -name estimates.json | wc -l
  24
  $ python3 -c 'import json; print(json.load(open(".../crypto/seal/new/estimates.json"))["median"]["point_estimate"])'
  817.96

Verified on CachyOS (rustc 1.96.0):
  cargo clippy -p punktfunk-core --all-targets --locked -- -D warnings   OK  (this is what compiles the bench)
  cargo clippy --workspace --all-targets --locked -- -D warnings         OK
  cargo bench -p punktfunk-core --bench pipeline --locked -- --test      12/12 Success
  cargo bench -p punktfunk-core --bench pipeline --locked -- --warm-up-time 1 --measurement-time 3   OK  (CI's exact line)
  cargo test -p punktfunk-core --locked   210 + 8 + 1 passed, 0 failed
  cargo fmt --all --check                 clean
2026-08-13 14:14:25 +02:00
..