e7f173cde0363b2d9fe4b938430501f7019c03f6
Hare-shaped lib/log v1: logger vtable carrying one println slot, stdlogger forwarding to a *io.stream, plus *logger globals (silent / default / global), setlogger, lprintln / println, lfatal / fatal. Default sink is stderr through a private rt_syscall write callback; graduates with #17 (cgen mod-mangle for fn labels), at which point the rt_syscall stub disappears the same way fmt's will. Module-scope struct/pointer-literal init isn't constexpr in cstage emit_lets, so silent/default/global are wired lazily by ensureinit on the first exported-fn entry (lib/temp rnginit pattern). Callers that read the globals directly must call some lib/log fn first. Skipped this round: printfln / lprintfln / fatalf / lfatalf and the matching printfln vtable slot — they need a fmt {n}-placeholder parser that isn't shipped yet. fatal / lfatal's exit(255) arm has no test fixture (needs fork+wait for WEXITSTATUS); left as TODO. 971_log_run wraps the @test fixture under `ww run`, mirroring 970_fmt_run. make test: 54/54; bootstrap fixed-point (990-997) holds.
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%