| Age | Commit message (Collapse) | Author |
|
|
|
|
|
Changes since 1.6.1:
- The C implementation has gained multithreading support, based on
Intel's oneTBB library. This works similarly to the Rayon-based
multithreading used in the Rust implementation. See c/README.md for
details. Contributed by @silvanshade (#445).
- The Rust implementation has gained a WASM SIMD backend, gated by the
`wasm32_simd` Cargo feature. Under Wasmtime on my laptop, this is a 6x
performance improvement for large inputs. This backend is currently
Rust-only. Contributed by @monoid (#341).
- Fixed cross-compilation builds targeting Windows with cargo-xwin.
Contributed by @Sporif and @toothbrush7777777 (#230).
- Added `b3sum --tag`, which changes the output format. This is for
compatibility with GNU checksum tools (which use the same flag) and
BSD checksum tools (which use the output format this flag turns on).
Contributed by @leahneukirchen (#453) and @dbohdan (#430).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Certain functions' unsafety comes from v128 loads and store. If
argument types guarantee that these loads and stores are safe, function
is declared safe, and internal unsafe blocks are commented.
|
|
|
|
|
|
Wasm SIMD API has certain function safe.
|
|
|
|
This code is based on rust_sse2.rs of the same distribution, and is
subject to further improvements. Some comments are left intact even if
their applicability is questioned.
SIMD implementation is gated by `wasm32-simd` feature, portable version
is used otherwise.
Performance measurements with a primitive benchmark with ~16Kb of data:
| M1 native | 11,610 ns |
| M1 WASM SIMD | 13,355 ns |
| M1 WASM | 22,037 ns |
| x64 native | 6,713 ns |
| x64 WASM SIMD | 11,985 ns |
| x64 WASM | 25,978 ns |
wasmtime v12.0.1 was used on both platforms.
Closes #187.
|
|
|
|
|
|
in cygwin falling to Unix asm make build fails with it
|
|
|
|
|
|
https://github.com/BLAKE3-team/BLAKE3/pull/230#issuecomment-2014908888
|
|
|
|
This job uses `cargo build` instead of `cargo test`, to exclude dev
dependencies.
|
|
|
|
|
|
|
|
|
|
The "true" MSRV of the base crate is unchanged, 1.66. This bump is
needed to run the `ignore` crate, a testing-only dependency.
|
|
|
|
We only test on Ubuntu due to the fact that CMake 3.9.6 does not
recognize modern MSVC versions and the main use case for these ancient
CMake versions are extremely conservative Linux distributions.
Note that CMake 3.9.6 does not support the modern convenience
commandline interface.
|
|
There are no default paths for target installs on CMake 3.9.
|
|
|
|
|
|
|
|
|
|
|
|
Adapted from https://github.com/BLAKE3-team/BLAKE3/pull/430/
by dbohdan.
|
|
|
|
|
|
Changes since 1.6.0:
- Remove `mmap` from the default features list. It was added
accidentally in v1.6.0, last week. This is technically a
backwards-incompatible change, but I would rather not tag v2.0.0 for a
build-time bugfix with a simple workaround.
|
|
I committed this change accidentally in
a12fa7b8a4131d77c35eda5c680b9307a0fc28d3. Thanks to @ArmoredPony for
catching this in https://github.com/BLAKE3-team/BLAKE3/issues/452.
|
|
This will be necessary when we eventually move to the 2024 edition, but
for now it's an unnecessary MSRV bump.
|
|
|
|
Changes since 1.5.5:
- Add Hash::from_slice. (#448)
- Fix a build error on Windows 7 targets. (#447)
|
|
|
|
This is a convenience method, to avoid having to first call
`<[u8; 32]>::try_from(slice)?`.
|
|
|
|
|
|
|
|
|