Skip to content

Update Elixir and Rust deps - #58

Merged
lpgauth merged 3 commits into
mainfrom
chore/update-deps
Sep 14, 2026
Merged

lpgauth merged 3 commits into
mainfrom
chore/update-deps

Conversation

@lpgauth

@lpgauth lpgauth commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Elixir

  • mix.lock refresh: benchee 1.5.1, dialyxir 1.4.8, ex_doc 0.40.4, jiffy 2.0.2, stream_data 1.4.0
  • glazer ~> 0.5 -> ~> 1.0; 0.5.15 is retired on hex

glazer 1.0 keeps everything the benchmarks use (compile_path/1, find/2, validate_utf8, force_utf8) and UTF-8 validation is still opt-in, so bench/torque_bench.exs needs no change.

Rust

  • rustler crate 0.36 -> 0.38. The Elixir side was already on 0.38; nothing enforces the match anymore (rustler 0.38 no longer raises unsupported_rustler_version), so the drift went unnoticed. No source changes were needed.
  • Cargo.lock refresh: sonic-number 0.1.1 -> 0.1.3, sonic-simd 0.1.3 -> 0.1.4, serde 1.0.229, thiserror 2.0.20, itoa 1.0.18, bytes 1.12.1, plus transitives.

Verification

  • cargo build --release, cargo clippy -- -D warnings, cargo fmt --check: clean
  • TORQUE_BUILD=true mix test: 309 passed, 1 skipped
  • Benchmarks: no change attributable to the bump. Run-to-run variance on a plain fat-LTO build exceeds any effect (large decode measured 676 / 535 / 720 ips across three runs, the last two on the same binary). Confirming whether sonic-simd 0.1.4 moved anything would need PGO builds on both sides.

Refresh mix.lock (benchee 1.5.1, dialyxir 1.4.8, ex_doc 0.40.4,
jiffy 2.0.2, stream_data 1.4.0) and move glazer from ~> 0.5 to ~> 1.0:
0.5.15 is retired on hex.

glazer 1.0 keeps the API the benchmarks use (compile_path/1, find/2,
validate_utf8, force_utf8) and UTF-8 validation stays opt-in, so
bench/torque_bench.exs needs no change.
The rustler crate was pinned at 0.36 while the Elixir side had moved to
0.38. Nothing enforced the match anymore (rustler 0.38 no longer raises
unsupported_rustler_version), so the drift went unnoticed. Both sides are
now on 0.38; no API changes were needed.

Also refreshes Cargo.lock: sonic-number 0.1.1 -> 0.1.3, sonic-simd 0.1.3
-> 0.1.4, serde 1.0.229, thiserror 2.0.20, plus transitives.

Build, clippy and cargo fmt are clean and the suite passes. Benchmarks
show no change attributable to the bump: run-to-run variance on a plain
fat-LTO build (large decode 676 / 535 / 720 ips across three runs of the
same binary) exceeds any effect.
One run of bench/torque_bench.exs on PGO builds of both torque and
glazer 1.0.1, rebuilt on the updated deps.

Also documents the llvm-profdata merge step the glazer PGO recipe needs:
its Makefile writes the flow for GCC (-fprofile-correction, *.gcda), so
under clang `make PGO=use` fails on a missing default.profdata until the
raw counters are merged.
@lpgauth
lpgauth merged commit 6b955f3 into main Sep 14, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant