README (1453B)
1 rcx is my personal library of miscellaneous bits of C code. I use it in pretty 2 much all my C projects, now-a-days. 3 4 Summary of features of each module: 5 - alloc.h: a consistently-named set of libc-compatible memory allocators 6 - bench.h: microbenchmarking 7 - bits.h: bit manipulation 8 - conv.h: conversions between strings and numbers 9 - debug.h: macros and functions for debugging 10 - def.h: pretty typedefs and common utility macros 11 - dict/*: generic dictionary (hash table) data structure 12 - list/*: generic list (dynamic array) data structure 13 - log.h: logging (with severity, timestamps, and source locations) 14 - rand.h: good hash, TRNG, and PRNG functions 15 - rcx.h: opinionated default include (includes def.h and std*.h libc headers) 16 - set/*: generic set (hash set) data structure 17 - simd.h: x86_64 SIMD intrinsics (GCC only) 18 - string.h: strings with length 19 - table/*: generic "table" data structure (common ancestor of dict/* and set/*) 20 - unicode.h: Unicode codepoint categorization 21 - unix.h: helper functions for Unix systems 22 - utf8.h: UTF-8 encoding and decoding 23 - vmem.h: virtual memory manipulation 24 25 There is also an all.h header to include everything except bench.h. 26 27 TODO: Document the common interface of generic data structures. 28 TODO: Convert deque.h to new generic data structure interface. 29 TODO: Solution to namespacing dilemma: Use r_ namespace everywhere, but 30 optionally establish macros to remove prefix.