DISCUSS.md item 16, in item 15's form. The headline is a measurement that contradicts what everyone expected, this report included: a program that loops and prints carries no Signal, no Handled and no RestartCase. Zero of each, measured with hist.ml before a line was written. What drags conditions in is the bounds check and the allocator — check_at signals, and signalling needs the channel and the guard — and neither is a Tast node, which is why a histogram cannot see either and why the guess was off. 41 of the 111 programs in test/programs build through --x86 and 40 print exactly what the LLVM build prints. The 41st is bounds.flan and it diverges on purpose: --x86 is silently a --no-bounds-checks build, and that is named as a divergence rather than left in a code comment. The other 40 are refused by name. check_no_transfer is what makes the missing guard sound instead of hopeful — if nothing reachable can write the channel, no call can return with it set — so the build stops with the node and the function rather than compiling forty programs wrongly. Both bugs found along the way are the shape item 15 predicted: the crash and the cause in different functions, and correct-reading assembly beside a wrong answer. The frame model is the thing that did not go wrong.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%