‹— back

oh no, tools again

Looking at new things for the next iteration of the toolset -- I knowwww, I know! But after floating lots of different ideas a good restructure is coming together. Some early research

Hashing

Specifically, compile time hash functions that either have an implementation simple enough to adapt or with an open source library that isn't awful. xxHash looks good, specifically this constexpr implementation. It's a couple of years old so doesn't include the newer XXH3 hash and possibly omits some speed improvements (the xxHash repo showed different benchmarks a few years ago) but ¯\(ツ)/¯. Grateful to the author for the publication!

Lighter hash containers

Specifically, a container without the big allocation overhead of std::unordered_map, which is the model mine follows. The latest innovations are Facebook's F14 and Google's Swiss Tables. But for simple implementation maybe it's worth just making a dense_hash_set?

Rewriting Makefiles

Doing some restructuring of build systems across different things and a lot of it is looking weird. But across all of them, changing the convention of ALL_CAPS_VARIABLE_NAMES to HappyCalmPascalCase. Everything is a lot less shouty :)