D002 - Announce before attempting
decided ยท 2026-08-19
Every check writes its identity, library and symbol before calling into the platform, and the write is unbuffered.
Under an emulator the normal outcome of an unimplemented function is
a hard crash that takes the process down. When that happens the stream
stops, and the last line names the exact call responsible. A report
ending on a try record is not a truncated report - it is a
one-frame stack trace that needs no debugger, no symbols and no
cooperation from the thing that crashed.
This is the most important property of the program. Everything else
is arranged to keep it true: no buffering, no batching, and a skipped
check deliberately emits no announcement, because a try
with no result must mean exactly one thing.