BUILT.md gains "The header is read now", directly under the section whose last paragraph promised that reading a header was what would convert the trusted half into a checked one and that it was not built. That sentence is replaced by a pointer to the one below it, in BUILT.md and in shim.ml's docstring both. It records the things worth not re-deriving: why the dump and not libclang (and that Zig left libclang too, which strengthens the argument rather than weakening it), why the import is bounded by the package's own defstructs, why generating defstructs would make the check circular in exactly the way a _Static_assert was rejected for, refusal-by-demotion from Zig's failDecl, the naming rule and what it must actually guarantee, and both const-vs-non-const char * and the target-varying widths. The diff and the costs are stated as measurements, with the table: 16 of 16 defstructs and 172 of 172 declare-c agree against 5.5, ten real differences against 5.1-dev, release +4ms warm, redefinition 31.0 -> 46.5ms. DISCUSS.md item 6 is rewritten rather than removed. The mechanism question is settled and is now in BUILT.md; what is left is narrower and is two decisions that are the author's — whether the header stays a build-time read or becomes a committed generator, and whether the 172 hand-written lines migrate. Both have the argument on each side written out, including what migration would lose: key-pressed? is a better name than is-key-pressed, and an enum parameter imports as i32 because nothing tells the importer the package calls KeyboardKey "Key".
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%