f32 only, and each refusal by name: clamp and abs stay compositions of the min/max builtins, split-at wants a pair type there is no way to spell, and the f64 and other-element-type copies wait for a program that wants them. -lm goes on every link, after the objects. The default --as-needed drops a library named before the object that wants it, and at -O2 LLVM folds most sqrtf calls into the hardware instruction so nothing has to resolve - which makes the flag look unnecessary until the -O0 build emits the call and fails to link. That is how it was found, on the -O0 acceptance run. sqrt is libm's rather than Newton's, because there is no bit cast between f32 and u32 to seed a guess from, and IEEE-754 makes sqrt correctly rounded so libm is bit-identical across targets anyway. llvm.sqrt.f32 as a builtin would be better still - one instruction, no symbol, no link flag - and belongs to whoever next touches check.ml. The finding worth keeping is a test that came back green when it should have been red: nothing in the table could observe floor's zero guard, because (ceil-f32 0.0) is +0.0 either way. (floor-f32 -0.0) is the only case where it shows, and the prelude comment had claimed the wrong justification for it.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%