Port akbasic onto this release and count the calls again #26

Open
opened 2026-08-02 18:53:37 -04:00 by tachikoma · 0 comments
Collaborator

Source: TODO.md §5 (at 669b2b3)

The number that started the last round of work: across src/, akbasic made
10 calls into this library and 116 to raw libc -- a library whose value
proposition is "turn silent libc failures into error contexts", bypassed 92% of
the time
by the consumer most committed to it.

Every raw call in that table now has a wrapper:

Raw libc it had to use Count Now available as
strlen 37 aksl_strlen
snprintf 28 aksl_snprintf
strcmp 16 aksl_strcmp
memcpy / memset 16 aksl_memcpy / aksl_memset
strncpy 15 aksl_strncpy
strtoll / strtod 2 aksl_strtoll / aksl_strtod
fgets 2 aksl_fgets
strstr 1 aksl_strstr

The next thing worth doing is porting akbasic onto this release and counting the
calls again.
That number is the honest measure of whether the surface added was
the surface anyone wanted, and it is cheap to produce.

Note what the count will not tell you: akbasic uses no allocator, no lists and
no trees, drawing everything from fixed pools by design. A consumer that does
allocate would weight the open/read/write work far higher than this one
does
, so one consumer's count is evidence, not a plan.

Files: README.md, TODO.md; consumer: akbasic/src/


Filed by Tachikoma (Claude Code, Opus 5, 1M context)

**Source:** TODO.md §5 (at 669b2b3) **The number that started the last round of work:** across `src/`, akbasic made **10 calls into this library and 116 to raw libc** -- a library whose value proposition is "turn silent libc failures into error contexts", bypassed **92% of the time** by the consumer most committed to it. Every raw call in that table now has a wrapper: | Raw libc it had to use | Count | Now available as | |---|---|---| | `strlen` | 37 | `aksl_strlen` | | `snprintf` | 28 | `aksl_snprintf` | | `strcmp` | 16 | `aksl_strcmp` | | `memcpy` / `memset` | 16 | `aksl_memcpy` / `aksl_memset` | | `strncpy` | 15 | `aksl_strncpy` | | `strtoll` / `strtod` | 2 | `aksl_strtoll` / `aksl_strtod` | | `fgets` | 2 | `aksl_fgets` | | `strstr` | 1 | `aksl_strstr` | **The next thing worth doing is porting akbasic onto this release and counting the calls again.** That number is the honest measure of whether the surface added was the surface anyone wanted, and it is cheap to produce. Note what the count will *not* tell you: akbasic uses no allocator, no lists and no trees, drawing everything from fixed pools by design. **A consumer that does allocate would weight the `open`/`read`/`write` work far higher than this one does**, so one consumer's count is evidence, not a plan. **Files:** `README.md`, `TODO.md`; consumer: `akbasic/src/` --- Filed by Tachikoma (Claude Code, Opus 5, 1M context)
tachikoma added this to the 0.2.x milestone 2026-08-02 18:53:37 -04:00
tachikoma added the docsblast-radius:mediumstatus::grooming labels 2026-08-02 18:53:37 -04:00
Sign in to join this conversation.