Rust ve musl standart kütüphanelerinde kayan nokta hatası bulundu
Öne çıkanlar
- Donanım desteği olmayan mimariler için yazılan FMA yuvarlama algoritmasında alt normal değer hatası bulundu.
- Hatalı kodun kökeni 2005 tarihli FreeBSD kaynaklarına ve oradan musl libc ile Rust'a kadar uzanıyor.
- Hata ayıklama sürecinde Rust derleyicisinin 32-bit ARM f128 ABI uygulamasındaki ayrı bir sorun da çözüldü.
Yazılım geliştiricisi Sergey Davidoff, SIMD tabanlı bir FMA (Fused Multiply-Add) algoritması geliştirirken Rust standart kütüphanesinde ve musl libc'de uzun süredir fark edilmeyen bir yuvarlama hatası tespit etti. Donanım seviyesinde FMA desteği bulunmayan eski x86 ve 32-bit ARM gibi mimarilerde kullanılan yazılımsal yedek kodun, sıfıra çok yakın alt normal (subnormal) kayan nokta değerlerini yanlış yuvarladığı ortaya çıktı.
Hatanın izi sürüldüğünde sorunun 2005-2011 yıllarına ait FreeBSD kaynak koduna ve oradan musl libc ile Rust standart kütüphanesine kopyalanan fmaf() fonksiyonuna dayandığı belirlendi. Rust standart kütüphanesine düzeltme yaması hazırlanırken 32-bit ARM platformlarında derleyicinin deneysel f128 türü ABI uygulamasında da ayrı bir hata açığa çıktı.
Tespit edilen düzeltmeler fearless_simd projesinde yayımlandı ve Rust derleyicisindeki ilgili ABI hatası giderildi. Rust standart kütüphanesi ve musl libc için hazırlanan düzeltme yamalarının ise inceleme ve birleştirme süreçleri devam ediyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.