aboutsummaryrefslogtreecommitdiff
path: root/core/hash/xxhash
Commit message (Collapse)AuthorAgeFilesLines
* remove xxhash core:mem dependencyjakubtomsu5 days1-2/+2
|
* Change Odin's LICENSE to zlib from BSD 3-clausegingerBill2025-10-285-5/+5
| | | | This change was made in order to allow things produced with Odin and using Odin's core library, to not require the LICENSE to also be distributed alongside the binary form.
* Render examples.Jeroen van Rijn2025-10-104-8/+8
|
* Further overhaul of package line comments.Jeroen van Rijn2025-10-091-1/+1
|
* package lines for core:hashJeroen van Rijn2025-10-091-3/+5
|
* Skip bounds checking on the inner accumulate loop.Barinzaya2025-07-311-2/+2
| | | | | This helps performance with SSE (somewhat) and AVX-512 (quite a bit), but not AVX2 for some reason.
* Remove favor_size attributes inhibiting SIMD optimizations.Barinzaya2025-07-311-11/+0
| | | | | | | | | This makes a tremendous (2x with SSE2, 3x with AVX2) difference on big datasets on my system, but this may be hardware-dependent (e.g. instruction cache sizes). Naturally, this also results in somewhat larger code for the large-data case (~75% larger).
* Various minor changes in XXH3.Barinzaya2025-07-311-19/+17
| | | | | | | | | | | | | This includes various minor things that didn't seem right or could be improved, including: - XXH3_state is documented to have a strict alignment requirement of 64 bytes, and thus came with a disclaimer not to use `new` because it wouldn't be aligned correctly. It now has an `#align(64)` so that it will. - An _internal proc being marked #force_no_inline (every other one is #force_inline) - Unnecessarily casting the product of two u32s through u128 (and ultimately truncating to u64 anyway)
* Add static SIMD support to XXH3 in core:hash/xxhash.Barinzaya2025-07-314-4/+137
| | | | | | | | | | This uses compile-time features to decide how large of a SIMD vector to use. It currently has checks for amd64/i386 to size its vectors for SSE2/AVX2/AVX512 as necessary. The generalized SIMD functions could also be useful for multiversioning of the hash procs, to allow for run-time dispatch based on available CPU features.
* core: improve package doc comments for the documentation generatorLaytan Laats2024-09-035-2/+7
|
* Fix `-vet-tabs` issuesgingerBill2024-08-241-9/+9
|
* fix `@(optimization_mode)` usage in builtin collectionsLaytan Laats2024-07-084-63/+63
|
* More style improvementsgingerBill2024-06-291-10/+11
|
* Fix free bug not using the correct allocatorgingerBill2024-03-272-10/+10
|
* Replace `core:*` to `base:*` where appropriategingerBill2024-01-285-6/+6
|
* Remove `auto_cast`gingerBill2023-01-161-1/+1
|
* [xxhash] For the streaming tests, randomly select the size to use.Jeroen van Rijn2022-05-021-1/+3
| | | | | | | | | Randomize size used with `update`. It'll print "Using user-selected seed {18109872483301276539,2000259725719371} for update size randomness." If a streaming test then fails, you can repeat it using: `odin run . -define:RAND_STATE=18109872483301276539 -define:RAND_INC=2000259725719371`
* [xxhash] Add tests for large inputsJeroen van Rijn2022-05-022-1/+3
| | | | | | | | | | | | | | Test XXH32, XXH64, XXH3-64 and XXH3-128 for large inputs, with both all-at-once and streaming APIs. XXH32_create_state and XXH64_create_state now implicitly call their "reset state" variants to simplify the streaming API to 3 steps: - create state / defer destroy - update - digest (finalize) These are tested with an array of 1, 2, 4, 8 and 16 megabytes worth of zeroes. All return the same hashes as do both the one-shot version, as well as that of the official xxhsum tool. 3778/3778 tests successful.
* [xxh3] Fix flaws in streaming implementationJeroen van Rijn2022-05-011-4/+4
|
* `ODIN_ENDIAN` changed to an enum constant; `ODIN_ENUM_STRING` is the new ↵gingerBill2022-01-151-1/+1
| | | | string version of the old constant
* Correct `XXH_DISABLE_PREFETCH` usagegingerBill2021-09-181-3/+1
|
* Merge branch 'master' into llvm-12.0.1-windowsgingerBill2021-09-185-184/+609
|\
| * xxhash: Add tests for streaming input.Jeroen van Rijn2021-09-151-12/+12
| |
| * Finish xxHash implementation.Jeroen van Rijn2021-09-155-551/+439
| |
| * Add XXH3-64 + tests.Jeroen van Rijn2021-09-131-126/+142
| |
| * xxhash: Extra (generated) tests.Jeroen van Rijn2021-09-112-130/+646
| |
* | Add `intrinsics.prefetch_*` proceduresgingerBill2021-09-111-10/+7
|/
* xxhash: Disable prefetch on Linux.Jeroen van Rijn2021-09-111-1/+4
|
* xxhash: Fix test on Linux.Jeroen van Rijn2021-09-111-1/+3
|
* xxhash: Add XXH3_128 + test vectors.Jeroen van Rijn2021-09-113-4/+937
|
* Make -vet happy.Jeroen van Rijn2021-09-091-4/+0
|
* Add xxhash tests to CI.Jeroen van Rijn2021-09-091-82/+1
|
* Add xxhash benchmark.Jeroen van Rijn2021-09-091-1/+86
|
* xxhash: Initial implementations.Jeroen van Rijn2021-09-093-0/+691