lëshimi i gjuhës së programimit sistemor , i zhvilluar nga projekti Mozilla. Gjuha fokusohet në punën e sigurt me memorie, siguron menaxhim automatik të memories dhe ofron mjete për arritjen e paralelizmit të lartë në realizimin e detyrave, duke mos përdorur mbledhësin e plehrave dhe runtime-in.
Menaxhimi automatik i memories në Rust përmban zhvilluesit nga manipulimi i treguesve dhe mbron ata nga problemet që lindin për shkak të punës me nivel të ulët me memorien, siç janë qasjet në hapësirën e memories pas lirimit të saj, dereferencimi i treguesve nul, dalja jashtë kufijve të tamponit etj. Për shpërndarjen e biblioteka, sigurimin e ndërtimit dhe menaxhimin e varësive, projekti po zhvillohet menaxher për paketat , që lejon shfrytëzimin e bibliotekave të nevojshme për programin me një klik. Për vendosjen e bibliotekave, mbështetet repository .
Ndryshimet kryesore :
- Tipazhet (trait) , dhe implementohen pĂ«r tĂ« vendosur nĂ« grumbull Boxâčdyn FnOnceâș, Boxâčdyn FnMutâș dhe Boxâčdyn Fnâș;
- Shtuar konvertimin e mbylljeve në pointera të rrezikshëm të funksioneve (unsafe fn);
- Implementohet mundësia për të thirrur makron «dbg!» pa argumente për të treguar në stderr emrin e skedarit dhe numrin e linjës pa e inspektuar ndryshoren, që është e dobishme për debugaimin e vlerave të kushtit;
- Tek llojet për numrat me pikë lundruese f32 dhe f64 është shtuar metoda «» për të kopjuar shenjën nga një numër në një tjetër;
- Tek llojet Range* është shtuar metoda ««, e cila lejon të kontrollohet nëse një vlerë e caktuar është në interval;
- Metoda e re , e cila lejon të reflektohet dhe ndahen të dhënat e huazuara RefCell për komponente të ndryshme të të dhënave të huazuara;
- Metoda e re për të zëvendësuar vlerën aktuale të RefCell dhe për të kthyer vlerën e vjetër si rezultat;
- Metoda e re për të hash-uar një pointer ose referencë sipas adresës, e jo sipas vlerës së adresuar;
- Metoda e re pĂ«r tĂ« kopjuar pĂ«rmbajtjen e opsioneve Optionâč&Tâș ose Optionâč&mut Tâș;
- Në rangun e stabilëve është kaluar një grusht i ri API, përfshirë metodat e stabilizuara
f32::copysign,
f64::copysign,
RefCell::replace_with,
RefCell::map_split,
ptr::hash,
Range::contains,
RangeFrom::contains,
RangeTo::contains,
RangeInclusive::contains,
RangeToInclusive::contains dhe
Option::copied; - Në clippy (linter) është shtuar kontrolli drop_bounds, që aktivizohet kur shtohet lidhja «T: Drop» në funksion;
- Në kompilator është shtuar mbështetje për platformën e re të targetuar
wasm32-unknown-wasi (interface për përdorimin e WebAssembly jashtë shfletuesit); - Instrumenti Rust është përshtatur për shpërndarjet që bazohen në bibliotekën standarde të C Musl.
Burimi: opennet.ru
