From 9130e47b171c5182ffe6c14eb710fdcb73943de4 Mon Sep 17 00:00:00 2001 From: Katharina Fey Date: Sat, 13 Jul 2019 06:40:05 +0100 Subject: Adding initial support for HASH nodes 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. --- CMakeLists.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ab2f46..abe82d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,10 +3,11 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c11") set(CMAKE_BUILD_TYPE Debug) project(bowl) -add_library(bowl SHARED bowl.c +add_library(bowl SHARED array.c + bowl.c data.c - utils.c - array.c) + hash.c + utils.c) target_include_directories(bowl PUBLIC ".") @@ -15,4 +16,4 @@ add_executable(ex_tree examples/tree.c) target_link_libraries(ex_tree bowl) add_executable(ex_list examples/list.c) -target_link_libraries(ex_list bowl) \ No newline at end of file +target_link_libraries(ex_list bowl) -- cgit v1.2.3