Mozilla loyihasi tomonidan asos solingan, ammo hozirda Rust Foundation mustaqil notijorat tashkiloti homiyligida ishlab chiqilgan Rust 1.69 umumiy maqsadli dasturlash tilining nashri chop etildi. Til xotira xavfsizligiga e'tibor qaratadi va axlat yig'uvchi va ish vaqtidan foydalanishdan qochgan holda yuqori ish parallelligiga erishish vositalarini taqdim etadi (ish vaqti standart kutubxonani asosiy ishga tushirish va texnik xizmat ko'rsatishga qisqartiriladi).
Rust-ning xotira bilan ishlash usullari ishlab chiquvchini ko'rsatkichlarni boshqarishda xatolardan qutqaradi va past darajadagi xotira bilan ishlash natijasida yuzaga keladigan muammolardan himoya qiladi, masalan, bo'shatilgandan so'ng xotira maydoniga kirish, null ko'rsatkichlarni o'chirish, buferni ortiqcha yuklash va hokazo. Kutubxonalarni tarqatish, qurishni ta'minlash va bog'liqliklarni boshqarish uchun loyiha Cargo paketi menejerini ishlab chiqadi. Crates.io ombori kutubxonalarni joylashtirish uchun qo'llab-quvvatlanadi.
Xotira xavfsizligi Rust-da kompilyatsiya vaqtida mos yozuvlarni tekshirish, ob'ektga egalik qilish, ob'ektning ishlash muddatini (ko'lamini) kuzatib borish va kodni bajarish paytida xotiraga kirishning to'g'riligini baholash orqali ta'minlanadi. Rust shuningdek, butun sonlarning to'lib ketishidan himoya qiladi, ishlatishdan oldin o'zgaruvchan qiymatlarni majburiy ishga tushirishni talab qiladi, standart kutubxonada xatolarni yaxshiroq boshqaradi, sukut bo'yicha o'zgarmas havolalar va o'zgaruvchilar tushunchasini qo'llaydi, mantiqiy xatolarni minimallashtirish uchun kuchli statik yozishni taklif qiladi.
Asosiy innovatsiyalar:
- Yuk paketi menejeri endi avtomatik ravishda hal qilinishi mumkin bo'lgan ogohlantirishlarni aniqlaydi va mos ravishda "yuklarni tuzatish" yoki "yuk klipi --fix" ni ishga tushirishni tavsiya qiladi. ogohlantirish: foydalanilmagan import: 'std::hash::Hash' --> src/main.rs:1:5 | 1 | std::hash::Hash dan foydalaning; | ^^^^^^^^^^^^^^^^^^ | = eslatma: '#[warn(unused_imports)]' sukut bo'yicha ogohlantirish: 'foo' (bin "foo") 1 ta ogohlantirish hosil qildi (1 taklifni qo'llash uchun "cargo fix --bin "foo" ni ishga tushiring)
- Yuk kitobi endi “cargo install” buyrug‘i yordamida kutubxona o‘rnatishga urinayotganda “yuk qo‘shish” buyrug‘idan foydalanish tavsiyasini ko‘rsatadi.
- Kompilyatsiya vaqtlarini qisqartirish uchun tuzilish skriptlarida disk raskadrovka ma'lumotlari sukut bo'yicha o'chirib qo'yilgan. Ushbu o'zgarish qurilish skriptlari muvaffaqiyatli ishga tushirilganda hech qanday ko'rinadigan farqlarga olib kelmaydi, ammo muvaffaqiyatsizliklar bo'lsa, orqaga qaytish ma'lumotlari kamroq ma'lumotlarni o'z ichiga oladi. Avvalgi harakatga qaytish uchun Cargo.toml-ga quyidagilarni qo'shing: [profile.dev.build-override] disk raskadrovka = rost [profile.release.build-override] disk raskadrovka = rost
- APIning yangi qismi barqaror toifaga ko'chirildi, shu jumladan xususiyatlarning usullari va amalga oshirilishi barqarorlashtirildi:
- CStr::dan_baytdan_nulgacha
- core::ffi::FromBytesUntilNulError
- Konstantalar o'rniga uni istalgan kontekstda ishlatish imkoniyatini belgilovchi "const" atributi funksiyalarda qo'llaniladi:
- SocketAddr :: yangi
- SocketAddr::ip
- SocketAddr :: port
- SocketAddr::is_ipv4
- SocketAddr::is_ipv6
- SocketAddrV4 :: yangi
- SocketAddrV4 :: ip
- SocketAddrV4 :: port
- SocketAddrV6 :: yangi
- SocketAddrV6 :: ip
- SocketAddrV6 :: port
- SocketAddrV6::flowinfo
- SocketAddrV6 ::scope_id
- Kompilyator argumentlarida haqiqiy va noto'g'ri bayroqlardan foydalanish imkoniyati qo'shildi.
Manba: opennet.ru
