summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-10-27Fix zix_digest64() to consume all inputDavid Robillard1-5/+5
This was a copy-paste bug since the loop in zix_digest32() worked differently. As a result only the first block was considered, making the digest nearly useless for larger values. The tests didn't (and unfortunately still don't) catch this because the 64-bit digest algorithm incorporates the size itself. Fix this by changing the loop to work the same way as zix_digest32(), so hopefully something like this doesn't happen again.
2021-10-25Fix incomplete header installationDavid Robillard1-0/+3
2021-09-18Fix warnings in release builds on MacOSDavid Robillard1-2/+7
Why only MacOS? Good question!
2021-09-18Update READMEDavid Robillard1-3/+33
2021-09-18Use assertions in Bitset testDavid Robillard1-52/+14
2021-09-18Simplify benchmark error handling by using assertionsDavid Robillard1-31/+11
These are things that should really never happen, especially if the tests pass.
2021-09-18Simplify benchmark main functionDavid Robillard1-12/+17
2021-09-18Fix minor quality issues in plot.pyDavid Robillard1-4/+4
2021-09-18Remove old documentationDavid Robillard2-2854/+0
2021-09-18Fix whitespaceDavid Robillard1-7/+5
2021-09-18Simplify CI configurationDavid Robillard1-28/+1
2021-09-16Fix test coverage uploading on CIDavid Robillard1-1/+1
2021-09-16Add FreeBSD row to CIDavid Robillard1-0/+15
2021-09-16Suppress warnings on FreeBSDDavid Robillard1-0/+1
Unfortunately clang proper supports this in earlier versions, but Apple's fork doesn't until the version that reports itself as clang 12. Since this is caught by the GCC builds anyway, just suppress them for clang unconditionally.
2021-09-16Suppress warnings in non-strict buildsDavid Robillard1-2/+6
2021-09-16Add a simple bump pointer allocatorDavid Robillard5-3/+276
2021-09-15Add redundant forward declaration to appease clang-tidyDavid Robillard1-0/+2
2021-09-14Replace shared library malloc shim with explicit allocation testingDavid Robillard7-188/+127
The old approach was generally annoying to deal with sometimes, and not particularly portable. This replaces it by using the new custom allocator interface with unit tests that specifically check that failed allocation is handled properly.
2021-09-14Add aligned allocation interface and use it in ZixBTreeDavid Robillard7-17/+219
2021-09-14Fix whitespace in allocator function type definitionsDavid Robillard1-12/+14
2021-09-14Make ZixAllocator a single flat structDavid Robillard14-162/+162
I can never decide between these two patterns for polymorphic objects in C, but this one seems more appropriate here since it's more conducive to inheritance.
2021-09-13Correctly handle hash table reallocation failuresDavid Robillard1-8/+25
2021-09-13Remove unused includeDavid Robillard1-1/+0
2021-09-11Fix zix_btree_free() nullable annotationDavid Robillard1-1/+1
2021-09-11Fix zix_btree_lower_bound()David Robillard1-7/+8
This condition was converted to an assertion in an over-eager session of code simplification and coverage testing. It turns out this does happen.
2021-09-10Fix C11 buildDavid Robillard1-3/+6
2021-09-10Fix includes when using as a subprojectDavid Robillard1-1/+3
2021-09-10Avoid GCC recommending a const mainDavid Robillard1-8/+4
These warnings are useful in general, but are pointless with main functions and annoying to avoid. Arbitrarily print something to make it go away.
2021-09-10Fix warning suppressionsDavid Robillard1-5/+3
2021-09-10Fix function attribute warningsDavid Robillard2-0/+3
2021-09-10Add gitignore fileDavid Robillard1-0/+3
2021-09-10Suppress nullability extension warnings regardless of strict modeDavid Robillard2-4/+12
2021-09-10Use conventional name for meson dependency variableDavid Robillard1-3/+3
2021-09-10Adopt REUSE machine-readable licensing standardDavid Robillard44-556/+238
2021-09-10Add test for zix_strerror()David Robillard2-0/+48
2021-09-10Use assert in Sem testDavid Robillard1-13/+7
2021-09-10Use assert in Ring testDavid Robillard1-91/+26
2021-09-10Test failed Ring allocationDavid Robillard4-19/+179
2021-09-10Remove branches from zix_bitset_set() and zix_bitset_reset()David Robillard1-14/+10
2021-09-10Add custom allocator supportDavid Robillard18-110/+438
2021-09-10Add nullability annotationsDavid Robillard13-130/+230
This allows clang to issue warnings at compile time when null is passed to a non-null parameter. For public entry points, also add assertions to catch such issues when the compiler does not support this.
2021-09-10Move attribute definitions to a separate headerDavid Robillard16-58/+95
2021-09-10Rewrite ZixHash as a flat table with open addressingDavid Robillard7-304/+776
2021-09-10Replace CRC32 digest with more modern and appropriate algorithmsDavid Robillard5-157/+324
This makes the hassle of platform-specific code go away, and instead uses portable implementations of relatively standard modern hash algorithms. CRC32 is not great as a hash function anyway, though it is very fast when hardware accelerated.
2021-09-10Generate slightly more realistic hash benchmark dataDavid Robillard1-7/+19
2021-09-10Fix cast alignment warnings in SSE4.2 digest codeDavid Robillard1-5/+29
2021-09-10Add a user handle to destroy callbackDavid Robillard8-39/+55
2021-09-10Add test that covers more BTree removal casesDavid Robillard1-0/+39
2021-09-10Add test for reinserting a value that is a BTree node split pivotDavid Robillard1-0/+20
2021-09-10Add test for BTree iterator comparisonDavid Robillard1-0/+44