Split the README reference material into docs/
The README was 794 lines: the summary, the design rationale, the whole macro reference, the threading contract, the build internals and the exit-status specification in one file. It is now 178 lines -- summary, installation, quickstart, and an index -- and the reference material lives in docs/, one file per topic: architecture, usage, status-codes, uncaught-errors, exit-status, thread-safety, building. The prose moved as written. Inbound references followed it: UPGRADING.md, TODO.md, include/akerror.tmpl.h and tests/err_threads_handoff.c now name the docs/ file that owns the text they cite, and AGENTS.md says where new documentation goes so the README does not grow back. Five factual errors fixed in the moved text: - Both NULL-pointer examples inverted their test. FAIL_ZERO_* fails when the expression is zero, so `(somePointer == NULL)` failed on a *valid* pointer. They now read `(somePointer != NULL)`. - AKERROR_NOIGNORE, four times including the #define, is AKERR_NOIGNORE. - FINISH_NORExbTURN is FINISH_NORETURN. - "functiions" is "functions". - The architecture link pointed at include/akerror.h, which is generated and not in the tree; it points at include/akerror.tmpl.h. The quickstart is new text. It compiles under -Wall -Wextra -Werror and was run through all three of its paths: handled usage error exits 0, unhandled IO error prints a trace and exits with the status, success exits 0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -39,10 +39,10 @@
|
||||
#define AKERR_HANDOFF_DEPTH 32
|
||||
|
||||
/*
|
||||
* The sizing rule the README gives, made executable. Every queued error is a
|
||||
* checked-out pool slot, and so is every producer's error in flight. Outrun the
|
||||
* pool and ENSURE_ERROR_READY exits the process from inside FAIL, with no slot
|
||||
* left to raise the failure from.
|
||||
* The sizing rule docs/thread-safety.md gives, made executable. Every queued
|
||||
* error is a checked-out pool slot, and so is every producer's error in flight.
|
||||
* Outrun the pool and ENSURE_ERROR_READY exits the process from inside FAIL,
|
||||
* with no slot left to raise the failure from.
|
||||
*/
|
||||
typedef char akerr_assert_handoff_fits_pool[
|
||||
(AKERR_HANDOFF_DEPTH + AKERR_TEST_THREADS < AKERR_MAX_ARRAY_ERROR) ? 1 : -1];
|
||||
|
||||
Reference in New Issue
Block a user