Типичный программист | IT, программирование, разработка, ИИ
IT и технологии · 5 сентября 2026 г.
Разработчик писал свою математику, а нашёл одинаковый баг в Rust и musl — 5 сентября 2026 г. в 09:12:05.896
Разработчик писал свою математику, а нашёл одинаковый баг в Rust и musl Shnatsel реализовывал fused multiply-add, операцию a*b+c с одним округлением, и обнаружил, что на субнормальных числах результат округляется не туда. Проверил стандартную библиотеку Rust: f32::mul_add ошибается так же. Проверил std::simd: то же. Проверил fmaf() в musl, libc, на которой собран Alpine: то же самое. Контрпример к первой версии его собственного патча нашла языковая модель, которую он попросил поискать ошибки. Разница в один младший бит, около 15 частей на миллион, и только там, где FMA эмулируется программно: старые Intel без AVX2, Hygon, 32-битный ARM. Сам автор честно пишет: важно ли это на практике, он не знает, но называет риск для детерминированных симуляций, которые обязаны давать одинаковые биты на разных машинах. Проверка занимает три hex-числа и одну строку на C; какие исправления уже влиты, а какие висят на ревью, на сайте.

