summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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
2021-09-10Simplify BTree implementationDavid Robillard3-263/+422
2021-09-10Avoid inserting wildcards as values in BTree testDavid Robillard1-8/+8
2021-09-10Allow ZixBTreeIter to be allocated on the stackDavid Robillard7-268/+174
2021-09-10Remove destroy field of BTree and add zix_btree_clear()David Robillard4-44/+109
If this is used, it is only when clearing or freeing a tree. Allowing it to be given as a parameter directly there is clearer and avoids bloating the tree itself with information that isn't needed.
2021-09-10Remove BTree debug printingDavid Robillard1-37/+0
2021-09-10Avoid implicit padding in BTree nodes on 64-bitDavid Robillard1-8/+15
Might as well use 32-bit integers if the space is there anyway.
2021-09-10Fix benchmarking scriptDavid Robillard1-4/+2
2021-09-10Suppress new warnings in clang-tidy 12David Robillard4-0/+9
2021-09-10Be explicit about the sign of defined integer constantsDavid Robillard3-10/+10
2021-09-10Fix conversion warningsDavid Robillard8-53/+71
2021-09-10Remove ZixStrindexDavid Robillard4-391/+0
2021-07-17Remove ZixSortedArrayDavid Robillard5-636/+0