This repository was archived by the owner on Aug 12, 2026. It is now read-only.
Repository navigation
Commit d169c01
committed
/survey: a grep that finds something has not shown you all of it
Third instance today of one shape -- reading a truncated view and treating it
as the whole. The first two were greps whose [a-z_] class silently excluded
digits, and /survey already carries that. This one is the other half, and it
was the expensive one:
void *, wasmtime_context_t *, uint32_t);
was printed for a callback typedef and read as the signature. The return type,
wasmtime_error_t* rather than void, was on the line above and outside the
window. Declaring the upcall void made wasmtime read a garbage register as an
error pointer and crash *after* the callback had run correctly, so every probe
printed success and the search went to ownership of an unrelated pointer for
two turns.
So the rule now says both halves, and adds the specific one that earned it:
before binding a C function through FFM, read its whole declaration from the
file rather than from a match. A wrong descriptor's symptom is a native crash
with no Clojure frame in it, and the cost of being sure is one Read.
Prose rather than machinery, and in the file that already carries the adjacent
rule, because there is nothing here to mechanize -- checking a descriptor
against a header automatically would mean parsing headers.
Claude-Session: https://claude.ai/code/session_01XF5Hfq4Ca2N2XYEzWQQuHt1 parent 99fa006 commit d169c01
1 file changed
Lines changed: 18 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
81 | 99 | | |
82 | 100 | | |
83 | 101 | | |
| |||
0 commit comments