Skip to content

Remove build-host CPU variants - #6

Merged
jeffhuen merged 1 commit into
mainfrom
codex/0.4.1-cpu-safety
Aug 15, 2026
Merged

jeffhuen merged 1 commit into
mainfrom
codex/0.4.1-cpu-safety

Conversation

@jeffhuen

Copy link
Copy Markdown
Owner

Summary

  • remove Linux, macOS, and Windows build-host CPU probes from RustlerPrecompiled loading
  • ship 30 portable NIF artifacts instead of 30 baseline plus 15 x86-64-v3 variants
  • remove the duplicated 32-byte scanner and encoder loops instead of adding runtime unsafe dispatch
  • update release instructions, architecture notes, and the 0.4.1 changelog

Performance decision

A four-leg baseline / AVX2 / x86-64-v3 / baseline comparison ran through Criterion and the production decode and encode APIs on AMD Zen 3 and Zen 4 hosts. AVX2 reduced isolated scanner time by about 35-41%, but decode and encode showed no consistent end-to-end gain outside BEAM benchmark drift. The result does not justify carrying runtime dispatch and an unsafe target-feature boundary.

Benchmark evidence: https://github.com/jeffhuen/RustyCSV/actions/runs/31866641117

Verification

  • Rust fmt, default/all-feature clippy, and 125 Rust tests
  • 54 core plus 4 encoder Miri tests
  • 494 ExUnit tests plus 5 properties
  • Credo strict and Dialyzer
  • docs with warnings as errors
  • Hex retirement and RustSec audits
  • unpacked Hex package source build
  • normal precompiled baseline load and forced source build

AVX2 cut isolated scanner time by 35-41% on Zen 3 and Zen 4, but production decode and encode showed no consistent gain outside BEAM benchmark drift. Ship 30 portable artifacts and remove the build-host probes and duplicate wide loops instead of adding runtime unsafe dispatch.
@jeffhuen
jeffhuen merged commit 58ae73e into main Aug 15, 2026
3 checks passed
@jeffhuen
jeffhuen deleted the codex/0.4.1-cpu-safety branch August 15, 2026 05:52
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