süsteemse programmeerimise keele väljaanne , mis Mozilla projekti poolt arendatav. Keel on suunatud mälu turvalisele kasutusele, tagab automaatse mälu haldamise ja pakub vahendeid ülesannete kõrge paralleelsuse saavutamiseks, vältides samas prügikorjajat ja runtime'i kasutamist.
Rustis tagab automaatne mälu haldamine arendajale mälukäitlemise manipuleerimise vabastamise ja kaitseb madala taseme mälu töötlemisega seotud probleemide eest, nagu mälu kasutamine pärast selle vabastamist, nullviidete de-referentsimine, puhverduspiiride ületamine jne. Raamatukogude jagamiseks, koostamise tagamiseks ja sõltuvuste haldamiseks arendatakse pakihaldurit , mis võimaldab vajalikke raamatukogusid ühe klikiga hankida. Raamatukogude paigutamiseks toetatakse hoidlapaiku .
Peamised :
- Tüüpide (trait) , ja rakendatud kuhjatud väärtustele Box‹dyn FnOnce›, Box‹dyn FnMut› ja Box‹dyn Fn›;
- Lisatud suletiste teisendamine mitteohutuks funktsioonipointeriks (unsafe fn);
- Rakendatud on makro «dbg!» kutsumine ilma argumentideta, et näidata stderr'is faili nime ja rida numbrit ilma muutuja uurimist, mis on kasulik tingimuslike väljendite jaotuse tõrkeotsimiseks;
- Uuringud f32 ja f64 ujuvate kümnendite tüüpidele on lisatud meetod «» ühe numbri märgi kopeerimiseks teise numbrisse;
- Range* tüüpidele on lisatud meetod ««, mis võimaldab kontrollida, kas antud väärtus jääb vahemikku;
- Uus meetod , mis võimaldab koguda ja jagada RefCell-i laenatud väärtust erinevate laenatud andmete komponentide vahel;
- Uus meetod kPraeguse RefCell-i väärtuse vahetamiseks ja vana väärtuse tagastamiseks tulemuseks;
- Uus meetod näidiku või viite hashimiseks aadressil, mitte adresseeritud väärtusel;
- Uus meetod Option‹&T› või Option‹&mut T› sisu kopeerimiseks;
- Uue API partii on tõlgitud stabiilsetesse, sealhulgas on stabiliseeritud meetodid
f32::copysign,
f64::copysign,
RefCell::replace_with,
RefCell::map_split,
ptr::hash,
Range::contains,
RangeFrom::contains,
RangeTo::contains,
RangeInclusive::contains,
RangeToInclusive::contains ja
Option::copied; - clippy's (linter) on lisatud drop_bounds kontroll, mis aktiveeritakse, kui funktsiooni lisatakse seos «T: Drop»;
- kompilaatorisse on lisatud tugi uue sihtplatvormi
wasm32-unknown-wasi (liidese WebAssembly rakendamiseks brauserist väljaspool); - Rust vahendite komplekt on kohandatud Musl standard C-teekide põhjal olevatele distributsioonidele.
Allikas: opennet.ru
