Rust 1.35 dasturlash tilining relizi

bo'lib o'tdi tizim dasturlash tilini chiqarish Pas 1.35, Mozilla loyihasi tomonidan ishlab chiqilgan. Til xotira xavfsizligiga e'tibor qaratadi, xotirani avtomatik boshqarishni ta'minlaydi va axlat yig'uvchi yoki ish vaqtidan foydalanmasdan yuqori vazifalar parallelligiga erishish uchun vositani taqdim etadi.

Rust-ning avtomatik xotira boshqaruvi ishlab chiquvchini ko'rsatgichlarni manipulyatsiya qilishdan ozod qiladi va past darajadagi xotira manipulyatsiyasi natijasida kelib chiqadigan muammolardan himoya qiladi, masalan, bo'sh xotiradan keyin foydalanish, null ko'rsatkichni yo'qotish, buferni haddan tashqari oshirib yuborish va boshqalar. Kutubxonalarni tarqatish, yig'ishni ta'minlash va loyiha tomonidan bog'liqliklarni boshqarish uchun paket menejeri ishlab chiqilmoqda. yuk, bir marta bosish orqali dastur uchun kerakli kutubxonalarni olish imkonini beradi. Xost kutubxonalar uchun ombor qo'llab-quvvatlanadi crates.io.

asosiy yangiliklar:

  • Xususiyatlari FnOnce, FnMut и Fn yig'indisi uchun amalga oshirildi qutili turlari Box‹dyn FnOnce›, Box‹dyn FnMut› va Box‹dyn Fn›;
  • Qo'shilgan imkoniyat xavfsiz bo'lmagan funksiya ko'rsatkichlariga (xavfsiz fn) yopishlarni quyish;
  • Ibratli "dbg!" Deb chaqirish qobiliyati amalga oshirildi. shartli ifodalar ishini disk raskadrovka qilish uchun qulay bo'lgan o'zgaruvchini tekshirmasdan stderr da fayl nomi va satr raqamini ko'rsatish uchun argumentlarsiz;
  • F32 va f64 suzuvchi nuqta turlariga " usuli qo'shildinusxa ko'chirish belgisi» belgini bir raqamdan ikkinchi raqamga ko‘chirish;
  • Qo'shilgan usul "o'z ichiga oladi“, bu sizga belgilangan qiymat diapazonda yoki yo'qligini tekshirish imkonini beradi;
  • Qo'shilgan usul Ref:Hujayra:map_split, qarz olingan ma'lumotlarning turli komponentlari uchun olingan RefCell qiymatini aks ettirish va ajratish imkonini beradi;
  • Qo'shilgan usul RefCell::replace_with joriy RefCell qiymatini almashtirish va natijada eski qiymatni qaytarish;
  • Qo'shilgan usul ptr::xesh manzilli qiymatdan ko'ra manzil bo'yicha ko'rsatgich yoki ma'lumotnomani xeshlash;
  • Qo'shilgan usul Variant :: nusxalangan Option‹&T› yoki Option‹&mut T› opsiyalarining mazmunini nusxalash uchun;
  • API-larning yangi qismi barqaror toifaga, jumladan barqarorlashtirilgan usullarga o'tkazildi
    f32 :: nusxa ko'chirish belgisi,
    f64 :: nusxa ko'chirish belgisi,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::xesh,
    Diapazon:: o'z ichiga oladi,
    RangeFrom:: o'z ichiga oladi,
    RangeTo::o'z ichiga oladi,
    RangeInclusive :: o'z ichiga oladi,
    RangeToInclusive:: tarkibida va
    Variant ::ko'chirildi;

  • Klipga (linter) drop_bounds tekshiruvi qo'shildi, bu funksiyaga “T: Drop” bog'lanishi qo'shilganda ishga tushiriladi;
  • Kompilyator yangi maqsadli platformani qo'llab-quvvatladi
    wasm32-noma'lum-wasi (interfeys WASI WebAssembly-dan brauzerdan tashqari foydalanish uchun);

  • Rust asboblar to'plami standart C kutubxonasi Musl asosida tarqatish uchun moslashtirilgan.

Manba: opennet.ru

a Izoh qo'shish