c-stuff
C scribbles. "Everything library". Minimal dependencies (stdlib, openBLAS).
Unstable API, don't depend on this.
Tools
Functionality (very limited):
- image processing
- text processing
- sorting
- dataset parsing
- support vector machines
See ./tools
Requirements
It is assumed the target platform is a reasonably common, new OS, with large amounts of RAM (hundreds of MiBs or more). The current Makefile assumes either Linux or macOS.
makeclang-21- probably many more depending on your OS/distro
See the LLVM docs or stufflib's CI config on how to new Clang versions (or use Docker).
(Optional) Run in Docker
If you can't install Clang 20 using a package manager, you can use Docker:
./scripts/build_image.sh ./scripts/run_image.sh
Makefile targets
Build and test
Unoptimized, with sanitizers (address and UB):
make -j4 all test integration_testOptimized:
make RELEASE=1 -j4 all test integration_testKeep the code tidy
Generate compilation database
make compile_commands.json
References
or at least some of them
- Modern C (November 2019), Jens Gustedt
- Effective C (August 2020), Robert C. Seacord
- Fluent C (October 2022), Christopher Preschern
- The Unicode® Standard Version 15.0 – Core Specification
- ZLIB Compressed Data Format Specification version 3.3
- DEFLATE Compressed Data Format Specification version 1.3
- PNG (Portable Network Graphics) Specification, Version 1.2
- Beej's Guide to Network Programming, v3.1.11
- GNU Make papers (November 2014), Paul D. Smith
- The GNU Make Book (April 2015), John Graham-Cumming