This repository was archived by the owner on Jun 1, 2023. It is now read-only.
try the google swiss table (in C)Β #378
Open
Description
Either the simple 16 ptr version (on 64bit), but probably go for the other cache-aware 7 ptr variant described in the talk, with the highest metadata bit to mark a full table. https://youtu.be/ncHmEUmJZf4?t=2845
See https://abseil.io/blog/20180927-swisstables
and for the C++ code https://github.com/abseil/abseil-cpp/blob/master/absl/container/internal/raw_hash_set.h.
I haven't found a C version for strings yet, but it should be much shorter, without all the C++ quirks. possibly inline short (<8 byte) strings.
They don't care for 32bit, but we do. Shouldn't be too hard to support both.