rcx

miscellaneous C library
git clone git://git.rr3.xyz/rcx
Log | Files | Refs | README | LICENSE

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.