Rust 1.98.1 منتشر شد؛ رفع یه باگ جدی در کامپایلر
حدود ۱ دقیقه مطالعه
راستلنگ نسخهی ۱.۹۸.۱ رو فقط دو هفته بعد از ۱.۹۸.۰ منتشر کرد، اونم برای رفع یه miscompilation جدی نه یه پچ معمولی. مشکل توی نحوهی تولید vtable برای trait object ها بود: در بعضی شرایط، rustc بهجای emit کردن یه function pointer درست، به اشتباه یه null pointer مینوشت. نتیجهاش این میشد که کد کاملاً safe و درست، موقع صدا زدن اون متد از طریق trait object، به آدرس صفر جامپ میکرد و segfault میداد — بدون هیچ warning ای موقع کامپایل.
این باگ توسط یکی از کاربرها موقع اجرای فریمورک پراکسی Rama روی aarch64-apple-darwin کشف شد، و جزو یه دسته از مشکلات مشابه مربوط به vtable generation هست که چند بار دیگه هم توی نسخههای ۲۰۲۶ راست دیده شده. اگه از ۱.۹۸.۰ استفاده میکنی، آپدیت به این نسخه رو نباید معطل بذاری؛ فقط کافیه rustup update stable رو بزنی.
