A pragmatic C
An itch that needed a scratch: why Prism exists, and how small pragmatic changes make C safer without a rewrite.
Read the article →Notes on C, compilers, and the work of making an existing codebase safer without rewriting it.
Long-form posts land here. Two other kinds of writing live nearby and are usually what people are actually looking for.
C in practice collects short, tested write-ups on parts of the language that compile quietly and go wrong later: whether = {0} zeroes the padding between struct members, why a goto past an initializer draws no diagnostic under -Wall -Wextra, and how struct S and S end up naming unrelated types in one file. Each one states the behaviour, shows it measured against a real compiler, cites the standard, and gives a fix that needs no tooling.
The documentation covers Prism itself: defer, orelse, zero-initialization and the rest, plus the specification and the release history.
New posts appear in the Atom feed. Prism development happens in the open on GitHub, where the commit log is a reasonable proxy for what tends to get written about next: most of the C in practice entries started as a bug fix.