Rust 1.43 dasturlash tilining relizi

nashr etilgan tizim dasturlash tilini chiqarish Pas 1.43, Mozilla loyihasi tomonidan asos solingan. Til xotira xavfsizligiga e'tibor qaratadi, xotirani avtomatik boshqarishni ta'minlaydi va axlat yig'uvchidan foydalanmasdan yuqori vazifalar parallelligiga erishish uchun vositalarni taqdim etadi. ish vaqti.

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:

  • Makroslar elementlarning fragmentlarini belgilar (belgilar), amalga oshirishlar (impl) yoki tashqi bloklar uchun kodga aylantirish uchun foydalanish imkoniyatini beradi. Masalan:

    makro_qoidalar! mac_trait {
    ($i:element) => {
    xususiyat T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Avlodga olib keladi:

    xususiyat T {
    fn foo() {}
    }

  • Primitivlar, havolalar va ikkilik operatsiyalar turini aniqlash yaxshilandi.
    Misol uchun, avval xatoga sabab bo'lgan quyidagi kod endi kompilyatsiya qilish imkoniyatiga ega bo'ladi (Rust endi 0.0 va &0.0 f32 turida bo'lishi kerakligini to'g'ri aniqlaydi):

    n bo'lsin: f32 = 0.0 + &0.0;

  • Cargo-ga yangi muhit o'zgaruvchisi CARGO_BIN_EXE_{name} qo'shildi, u integratsiya testlarini qurishda o'rnatiladi va paketning β€œ[[bin]]” bo'limida belgilangan bajariladigan faylga to'liq yo'lni aniqlash imkonini beradi.
  • Agar bayonotlarda "#[cfg()]" kabi atributlardan foydalanishga ruxsat berilsa.
  • Kutubxona modulni import qilmasdan to'g'ridan-to'g'ri butun va kasr turlari uchun bog'langan konstantalardan foydalanish imkoniyatini beradi. Misol uchun, avval β€œuse std::u32” va β€œuse std::f32”ni belgilamasdan darhol u32::MAX yoki f32::NAN yozishingiz mumkin.
  • Yangi modul qo'shildi ibtidoiy, bu Rust ibtidoiy turlarini qayta eksport qiladi, masalan, so'l yozish kerak bo'lganda va turlar yashirilmaganligiga ishonch hosil qiling.
  • API-larning yangi qismi barqaror toifaga, jumladan barqarorlashtirilgan toifaga o'tkazildi

    Bir marta :: tugallandi,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 va
    iter::bir marta_bilan.

Manba: opennet.ru

a Izoh qo'shish