proven_c_lib-v0.1.1
A PATCH release: the tutorial gains three lessons, and the hand build the manual prints works
on GCC 14 with glibc. No public API changes.
Added
- Tutorial lessons 7-9 (
manual/manual-t-tutorial.mdand the Korean edition): memory freed
all at once (proven_arena_resetin a per-round loop, andPROVEN_ERR_NOMEMwhen the arena
is too small), a container that keeps its allocator (PROVEN_ARRAY_*growing past its
starting capacity), and failures from outside the program (a whole-file write and read, then
PROVEN_ERR_NOT_FOUNDfor the removed file). Lesson 5 already pointed at lesson 7 for the
arena reset; it now exists. Each lesson is a runnable program in both example trees
(tut_07_arena,tut_08_containers,tut_09_files), so the full run is 84 manual examples
and 202 executables.
Fixed
- The hand build the manual prints now compiles on GCC 14 with glibc. The tutorial and
Chapter 0 givecc -std=c23 -Iinclude your_program.c src/proven/*.c platform/*.cwith no
-Dflags. Under a strict-std, glibc hides the POSIX declarations the PAL uses
(pread,pwrite,ftruncate,clock_gettime,nanosleep,O_CLOEXEC), and GCC 14
treats an implicit declaration as an error, soproven_sys_io.c,proven_sys_random.c
andproven_sys_time.cfailed. Nothing here noticed becausenob.cpasses
-D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809Litself. Every PAL source now requests them
before its first include, asproven_sys_fs.calready did;-Dflags given on the
command line still win.tests/test_portability_source_contractschecks all eight.