Files
solvecraft/harness/mathprobe/src
Jacob Oursland 7080bc83fb findings: Rust's cbrt on Linux depends on link order; probe self-check
Review (#225): on Linux x86_64 a pure-Rust binary's f64::cbrt binds to
compiler_builtins' copy (nm: local `t cbrt`), not glibc, and differs from
glibc in 47.5% of cases (identical to wasm). Checked further: a binary that
links -lm ahead of it, as solidcore-ffi's build.rs does, imports glibc's cbrt
(`U cbrt`), and its Rust and C++ sides agree on all 200k inputs. So difftest's
geom.polynomial parity is real, but does not carry over to pure-Rust builds,
whose cubic solver can differ from the C++ by an ulp. All other functions
match glibc exactly in a pure-Rust Linux binary (all 13 checked).

- findings: reworded opening, "Rust Linux x86_64" column, link-order note,
  consequence for geom.polynomial.
- mathprobe: README wording; run.sh also evaluates the host's C libm and
  compare.py prints Rust-vs-host-libm, so such a function shows up on any host.
- rustfmt the probe sources; drop trailing whitespace in compare.py.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-18 21:18:34 -07:00
..