Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 40 million developers.Sign up
tag the first release of the C implementation, c-0.2.0 This release is motivated by a fix for a potential security vulnerability. 421a21a fixes a bug introduced in a1c4c4e. A truncated pointer register led to a segfault on x86-64 under Clang 7 and 8. Clang 9 happens to be unaffected, but the behavior is undefined in general. See also: #60 (comment) The C implementation of BLAKE3 hasn't been formally packaged anywhere, and most callers vendor code from master. This release tag is intended to make the fix above more visible, to encourage callers to update their vendored copies. We will continue to publish tags like this whenever bugs in the C implementation are fixed, or if there are any incompatible API changes. Note that the issue above does not impact callers of the Rust `blake3` crate. The affected file, `blake3_dispatch.c`, is not compiled by that crate in any configuration. It does impact callers of the internal `blake3_c_rust_bindings` crate, but that crate is not published on crates.io and not intended for production use.
version 0.2.0 Changes since 0.1.5: - The `c_avx512` feature has been replaced by the `c` feature. In addition to providing AVX-512 support, `c` also provides optimized assembly implementations. These assembly implementations perform better, perform more consistently across compilers, and compile more quickly. As before, `c` is off by default, but the `b3sum` binary crate activates it by default. - The `rayon` feature no longer affects the entire API. Instead, it provides the `join::RayonJoin` type for use with `Hasher::update_with_join`, so that the caller can control when multi-threading happens. Standalone API functions like `hash` are always single-threaded now.
version 0.1.5 Changes since 0.1.4: - Remove all AVX-512 code from builds with the default feature set. This works around rust-lang/rust#68905 and fixes the nightly build as long as the "c_avx512" feature is not activated. This release is a backport of a single commit, e43a7d6. The master branch contains backwards-incompatible changes (fc219f4), and the next release of master will be version 0.2.0. Note that the `b3sum` crate activates the "c_avx512" feature by default, and it will continue to fail to build on nightly until the upstream bug is fixed.
version 0.1.3 Changes since 0.1.2: - All x86 implementations include _mm_prefetch optimizations. These improve performance for very large inputs. - The C implementation performs parallel parent hashing, matching the performance of the single-threaded Rust implementation. - b3sum supports --no-mmap. Contributed by @cesarb.