You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
improvement: autodetect whether linking with -ldl is required (thanks to @fwyzard)
improvement: added a CUDA build job (nvcc 13.2, Ubuntu 24.04) to the Azure Pipelines CI
improvement: the Rust codecs (density, mbrotli, pulsar) are built into a single library from
misc/rust-codecs, so a BUILD_STATIC=1 binary can link more than one of them
improvement: the crates.io dependencies of the Rust codecs are vendored in
misc/rust-codecs/vendor, so they build without network access
improvement: "make" no longer reruns cargo and recompiles bench/lzbench.o every time;
the Rust library is rebuilt only when its sources or the set of Rust codecs change
improvement: tornado is now benchmarked on RISC-V hardware whose misaligned scalar access
is fast (detected with the hwprobe syscall), instead of being disabled outright
(thanks to @zqb-all)
improvement: the Makefile now generates header dependencies (-MMD -MP), so editing a header
or a .cpp that another .cpp #includes (aceapex, lzo, ucl, tamp, 7-zip) rebuilds the
affected objects instead of relinking stale ones
improvement: CI now runs every codec on incompressible and tiny inputs, and has a native
static build job that links the Rust (density, mbrotli, pulsar) and Zig (skim)
codecs
improvement: RUST_TARGET_CPU sets the CPU the Rust codecs are compiled for (default: native);
the release binaries use x86-64, as a native build contains e.g. AVX-512 code and
dies with SIGILL on CPUs without it
fix: codecs whose init() fails are now skipped instead of being benchmarked with a
NULL work_mem, which used to SEGFAULT (e.g. "lzbench -eCUDA" without a GPU)
fix: libdeflate leaked a decompressor on every decompression call (thanks to @wu-zhao-min)
fix: aceapex corrupted inputs smaller than 768 bytes (thanks to @yasha1971-coder)
fix: memory and file handle leaks when an input file cannot be read, or when a memory
allocation fails (thanks to @wu-zhao-min)
fix: density was enabled with Cargo 1.82-1.84, which cannot build its edition 2024 crate,
so the build failed; it is now skipped below 1.85
fix: aceapex double-free on empty compression streams (thanks to @zqb-all)
fix: changing the set of codecs (e.g. DONT_BUILD_MBROTLI=1) left stale bench objects
that failed to link; they are now rebuilt