- abs functions with signed result assume two's complement (x) - abs functions with unsigned result assume two's complement (x) - header guards for optional int64_t types maybe... - sort: add cpp #ifdef to remove restrict from declaration - separate impl and headers from tests (for compile perf) - tests for guf_dict with GUF_DICT_64_BIT_IDX (and also hash32/hash64); maybe pass kv_type to insert to avoid copy - dict elems shrink to fit; allow to pass GUF_DBUF_USE_GROWTH_FAC_ONE_POINT_FIVE; start capacity (for elems and kv_indices?) - dict: if load factor is high due to mostly tombstones, just try rehashing without resizing first? - bench - example directory - guf_stack, guf_queue, guf_dqueue, guf_prio_queue (using a heap), guf_ringbuf - track allocs for test (implement alloc tracker): - each thread needs its own alloc and alloc_ctx; don't track granular, give each allocator it's unique id maybe? - potential idea for alloc: instead of using a pointer (8 or 4 bytes), use a 2 byte id to save space (and avoid dangling pointers): - no guf_init.h - unicode normalisation - handle right-to-left text properly