Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2019-07-14 | Various improvements around HASH nodes | Katharina Fey | 1 | -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 :) | |||||
2019-07-14 | Implementing HASH node `remove_key` function | Katharina Fey | 1 | -0/+12 | |
2019-07-13 | Adding initial support for HASH nodes | Katharina Fey | 1 | -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. |