aboutsummaryrefslogtreecommitdiff
path: root/hash.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Various improvements around HASH nodesKatharina Fey2019-07-141-7/+48
| | | | | | | | | | | | | | | The example previously would lead to corrupt memory when running for items that needed to re-hash the hash array. This has been fixed. Secondly, all HASH node memory leaks are now fixed, that resulted from badly tracking objects through the resize process. A new function `hash_free_shallow` was added to help with this. The function `array_free_shallow` is unused but might become useful in the future and so was not removed. The hash strategy is still garbage but this can be fixed later :)
* Implementing HASH node `remove_key` functionKatharina Fey2019-07-141-0/+12
|
* Adding initial support for HASH nodesKatharina Fey2019-07-131-0/+73
This PR adds initial support for HASH data nodes in libbowl. This allows a performant key-value store lookup in a node tree. The hashing code implements the "murmur" hash, which has shown good performance over at [`libcuckoo`]. Currently there is no extended hashing strategy, which should definitely be changed. [`libcuckoo`]: https://github.com/qaul/libcuckoo (currently a collision will cause a recursive re-alloc) Some of the type-level hacks also begs the question if a PAIR data node might be warranted, even though it would break the simple design around bowl->data.