seahash merge requestshttps://gitlab.redox-os.org/redox-os/seahash/-/merge_requests2023-10-25T00:50:15Zhttps://gitlab.redox-os.org/redox-os/seahash/-/merge_requests/8fix: add missing MIT license text2023-10-25T00:50:15ZFabio Valentinifix: add missing MIT license textThe MIT license is one of the licenses that contains terms that require any (re)distributed sources to contain a copy of the actual license text. This PR adds a license file that is currently missing from the seahash crate, which is prob...The MIT license is one of the licenses that contains terms that require any (re)distributed sources to contain a copy of the actual license text. This PR adds a license file that is currently missing from the seahash crate, which is problematic for Linux distributions that package this crate, and potentially also for publishing and redistributing it via crates.io.
The text of the added file is taken from the rust-lang/rust repository on GitHub, and matches the SPDX reference for the MIT license.
Originally reported here:
https://github.com/redox-os/tfs/pull/76https://gitlab.redox-os.org/redox-os/seahash/-/merge_requests/5Fix use read_unaligned instead of dereferencing ptrs2021-01-15T20:22:29ZJoonas KoivunenFix use read_unaligned instead of dereferencing ptrsbefore this change, running tests with miri crashed with an alignment
error as pointers were read as for example u64 pointers. this doesn't
change the bench results at least for a amd64 amd zen2 cpu.
~~Fixes~~ CC: #9, might help #7, but...before this change, running tests with miri crashed with an alignment
error as pointers were read as for example u64 pointers. this doesn't
change the bench results at least for a amd64 amd zen2 cpu.
~~Fixes~~ CC: #9, might help #7, but I have no arm cpu available.https://gitlab.redox-os.org/redox-os/seahash/-/merge_requests/6benches: Use criterion2020-11-24T11:22:45ZJoonas Koivunenbenches: Use criterionMe failing to run enough benchmarks in !5 lead me to think that perhaps with criterion the lack of change in perf might be easier to spot. Testing !5 on these commits with similar background noise does yield the `No change in performance...Me failing to run enough benchmarks in !5 lead me to think that perhaps with criterion the lack of change in perf might be easier to spot. Testing !5 on these commits with similar background noise does yield the `No change in performance detected.`.
Obvious cons with criterion is that it does add even more compilation time to this previously fast to compile crate.
Pros include no longer requiring nightly usage.
Instead of a single long bench for each {buffer,stream} there are now a number of smaller sizes (8-16384 bytes) which are benchmarked. The choice of the buckets was quite arbitary.https://gitlab.redox-os.org/redox-os/seahash/-/merge_requests/4impl Write trait for the streaming SeaHasher2020-08-01T08:10:29ZjRimbaultimpl Write trait for the streaming SeaHasherSee #8.
If you want it, I made it.See #8.
If you want it, I made it.https://gitlab.redox-os.org/redox-os/seahash/-/merge_requests/3Fix chunking2020-06-27T11:08:23ZJoonas KoivunenFix chunkingFixes #5 or chunking, and adds the tests which I used to hunt this down. ~~The testing could be more thorough, like for example with quickcheck, but this should get things forward either way.~~ Quickcheck tests added.Fixes #5 or chunking, and adds the tests which I used to hunt this down. ~~The testing could be more thorough, like for example with quickcheck, but this should get things forward either way.~~ Quickcheck tests added.https://gitlab.redox-os.org/redox-os/seahash/-/merge_requests/2stream: Fix chunking sensitivity.2020-01-31T06:07:37ZTom Almeidastream: Fix chunking sensitivity.Fixes #1.
This is a breaking change that will cause the major version to be
bumped.
- Rewrite `SeaHasher` to use its own inner state instead of the one in
`buffer.rs`
- Add tests for chunking for stream hashing
- Add tests for ensuring...Fixes #1.
This is a breaking change that will cause the major version to be
bumped.
- Rewrite `SeaHasher` to use its own inner state instead of the one in
`buffer.rs`
- Add tests for chunking for stream hashing
- Add tests for ensuring the same result for streaming and block hashing
- Add benchmark for stream hashing
- Change `...` to `..=` in `buffer.rs`
Benchmark change:
- Before: `test gigabyte_stream ... bench: 146,492,395 ns/iter (+/- 3,035,585)`
- After: `test gigabyte_stream ... bench: 148,758,785 ns/iter (+/- 2,188,461)`https://gitlab.redox-os.org/redox-os/seahash/-/merge_requests/1Fix `buffer::pop`2020-01-17T07:49:13ZPhilip WoolfordFix `buffer::pop`The `pop()` function rotated the internal state in the wrong order, causing `pop()`s to overwrite `b`, `c` and `d` to be equal every time.
This has been fixed, and the `mut a` has been removed from `push()` too.The `pop()` function rotated the internal state in the wrong order, causing `pop()`s to overwrite `b`, `c` and `d` to be equal every time.
This has been fixed, and the `mut a` has been removed from `push()` too.