2026-08-27 - klogsrv prints its banner

Six functions after D343, a payload runs and speaks:

.----------------------------------------------------------------------.
| v0.9                                Copyright (C) 2025 John Tornblom |
'----------------------------------------------------------------------'
main.c:278:sysctl: error 0 (orbistoun has no message table)

The last line is the guest naming its own next blocker, by file and line, through this project's own strerror text. klogsrv: 3 imports and 3 calls to 9 and 18. ftpsrv: 1 to 8.

signal, getopt, __error, strerror, fprintf, puts (D348). Each one was chosen by running the guest and reading what it asked for next - no guessing at any point.

The half of the C library that is not a return value

Three of the six cannot be implemented as an answer. getopt reports through optind, errno is *__error(), strerror hands back a buffer. D307 predicted this ("the first time the HLE layer would own state rather than functions") and D323 built the storage; this session added the way back to it by name, so an implementation can leave something where the guest will actually read it.

Surprises

libc:: in a trace means declared, not implemented. Chased a fault "inside libc::strerror" for a while before checking the nothing implements it list, which had the real answer. Declaring a function changes its label; binding it changes its behaviour, and the two happen in different places (D082).

Entering at main needed argc/argv to match. Every EntryArgument variant answers what a process entry point finds, and main is not one - it is a C function with a documented signature. Handing it a process-argument block gives it a wild count, which getopt then has to refuse rather than iterate.

The tree refused all six until they were written down. every_implemented_function_is_written_down failed the moment signal was bound. Principle 1's accounting, working exactly as designed, catching the whole batch at once. Five recorded published; strerror is assumed on purpose - its message is ours and says so rather than imitating a table nobody here has seen.

Not mine

./orbistoun.sh prose now fails on three line-continued literals in crates/orbistoun-service/src/symbols.rs, a file this session never opened. That is the fourth of the concurrent session's files to break a gate, after orbistoun-submit, orbistoun-gui and orbistoun-shell. This session's crates: clippy clean, tests passing.