- C 86.8%
- Python 13.1%
- Shell 0.1%
| docs/manual/selvalog | + Add first documentation of the logger | |
| modules | + Fix linking many modules with inter-dependencies | |
| .gitignore | + Add '.gitignore' and 'do.sh' | |
| do.sh | ~ Remove suffix '.v2' from builder folder | |
| LICENSE | + Add LICENSE file | |
| README.md | + Add README.md | |
SelvaBase | Utilities for developing software in C
This repository contains utilities for developing well-structured and reusable software modules in C. It includes the following parts:
- Allocation Utilities
- JSON Package
- Module-oriented Builder
- Module-oriented Logger
Allocation Utilities
The allocators provide a genericized interface to allocators employing multiple different allocation strategies. The current supported types of allocators are:
- Arena
- C standard library
malloc()-wrapper - Freelist interposer
- Pool
The freelist interposer keeps a list of the backing allocator, most of the time a malloc-wrapper, and can free all of the allocations at the end of the specific part in the program at once.
Builder
The builder is a collection of Python scripts that manage dependency fetching, calling a compiler and packaging the software (generally: linking to a native executable).
While it may leave a lot of performance on the table, it is very easy to use and can be enhanced without heavy modifications to the core; the builder is modular.
JSON Package
The JSON package allows reading and writing JSON files. The writer is in a work-in-progress state and shouldn't be used.