commit ff97362647c8e90803c544cbe4fb904c83a4ed7d
parent f7566042d802986927b685aaab8ed523bdb352ee
Author: Robert Russell <robert@rr3.xyz>
Date: Mon, 26 Aug 2024 03:03:29 -0700
Add README
Diffstat:
| A | README | | | 28 | ++++++++++++++++++++++++++++ |
1 file changed, 28 insertions(+), 0 deletions(-)
diff --git a/README b/README
@@ -0,0 +1,28 @@
+rcx is my personal library of miscellaneous bits of C code. I use it in pretty
+much all my C projects, now-a-days.
+
+Summary of features of each module:
+ - alloc.h: a consistently-named set of libc-compatible memory allocators
+ - bench.h: microbenchmarking
+ - bits.h: bit manipulation
+ - conv.h: conversions between strings and numbers
+ - debug.h: macros and functions for debugging
+ - def.h: pretty typedefs and common utility macros
+ - dict/*: generic dictionary (hash table) data structure
+ - list/*: generic list (dynamic array) data structure
+ - log.h: logging (with severity, timestamps, and source locations)
+ - rand.h: good hash, TRNG, and PRNG functions
+ - rcx.h: opinionated default include (includes def.h and std*.h libc headers)
+ - set/*: generic set (hash set) data structure
+ - simd.h: x86_64 SIMD intrinsics (GCC only)
+ - string.h: strings with length
+ - table/*: generic "table" data structure (common ancestor of dict/* and set/*)
+ - unicode.h: Unicode codepoint categorization
+ - unix.h: helper functions for Unix systems
+ - utf8.h: UTF-8 encoding and decoding
+ - vmem.h: virtual memory manipulation
+
+There is also an all.h header to include everything except bench.h.
+
+TODO: Document the common interface of generic data structures.
+TODO: Convert deque.h to new generic data structure interface.