programmeerimiskeele versioon 1.47 , mille on loonud Mozilla projekt. Keel on keskendunud mĂ€lusĂŒsteemi turvalisele töötlusele, tagab automaatse mĂ€lu haldamise ja pakub vahendeid kĂ”rge paralleelsuse saavutamiseks ĂŒlesannete tĂ€itmisel, ilma et oleks vaja ja (kĂ€itamine piirdub pĂ”hialustamise ja standardraamatukogu hooldamisega).
Rustis automaatne mÀlu haldus vabastab arendaja nÀidikutest ja kaitseb madala taseme mÀlu kÀsitlusega seotud probleemide eest, nagu nÀiteks mÀlu juurde pÀÀsemine pÀrast selle vabastamist, nullnÀidikute dereferentsimine, puhverserverist vÀlja minemine jne. Teegikogude levitamiseks, koostamise tagamiseks ja sÔltuvuste haldamiseks areneb vÀlja pakihaldur. . Raamatukogude paigutamiseks toetatakse registrit .
Peamised :
- On rakendatud toetust tĂŒĂŒbitel mÔÔtmatud. Varem, kuna ei olnud vĂ”imalik mÀÀrata generilisi funktsioone kĂ”igi tĂ€isarvude jaoks, pakkus standardraamatukogu sisseehitatud toetust tĂŒĂŒbitel ainult vahemikele, mille suurus ei ĂŒletanud 32 elementi (iga suuruse tĂŒĂŒp oli mÀÀratud staatiliselt). TĂ€nu konstandi generikate funktsionaalsuse loomisele on nĂŒĂŒd vĂ”imalik mÀÀratleda generilisi funktsioone mis tahes suurusega vahemike jaoks, kuid need ei ole veel stabiliseeritud keele omaduste hulka lisatud, kuigi need on teostatud kompilaatoris ja nĂŒĂŒd standardraamatukogus vahemike tĂŒĂŒpide jaoks, olenemata suurusest.
NÀiteks jÀrgmine konstruktsioon Rust 1.47 toob esile massiivi sisu, kuigi see oleks varem pÔhjustanud vea:
fn main() {
let xs = [0; 34];println!(«{:?}», xs);
} - Tagatud on lĂŒhemad jĂ€lgimisjooned (backtrace), mis kuvatakse erakorraliste olukordade korral. JĂ€lgimisjoontest on vĂ€lja jĂ€etud elemendid, mis ei ole enamikus olukordades huvipakkuvad, kuid segavad vĂ€ljundit ja hĂ€irivad tĂ€helepanu probleemide esmaste pĂ”hjuste leidmisel. Terve jĂ€lgimise saamiseks saab kasutada keskkonnamuutujat «RUST_BACKTRACE=full». NĂ€iteks koodi puhul
fn main() {
panic!();
}varem kuvatud jĂ€lgimine 23 sammust, nĂŒĂŒd on see vĂ€hendatud
3 sammuks, mis aitavad kohe tuvastada sisu:thread âmainâ panicked at âexplicit panicâ, src/main.rs:2:5
stack backtrace:
0: std::panicking::begin_panic
at /rustc/dâŠd75a/library/std/src/panicking.rs:497
1: playground::main
at ./src/main.rs:2
2: core::ops::function::FnOnce::call_once
at /rustc/dâŠd75a/library/core/src/ops/function.rs:227 - Kompilaator rustc on vĂ€rskendatud versiooniga, mis kasutab (Rust LLVM tagasiharu koodigeneratsiooniks rust-lang/llvm-project ) nĂŒĂŒd kasutatakse LLVM 11. LLVM 11 vĂ€ljaanne on oodata lĂ€hiajal.
- Windows platvormil rustc kompilaatoris on tagatud tĂ€iendavate kontrollide aktiveerimine töötĂ”rgete kaitseks (Control Flow Guard), mida saab aktiveerida flagi â-C control-flow-guardâ abil. Teistel platvormidel seda lippu praegu ignoreeritakse.
- Uue API osa on tÔlgitud stabiilsete ridade hulka, sealhulgas on stabiliseeritud
Ident::new_raw,
Range::is_empty,
RangeInclusive::is_empty,
Result::as_deref,
Result::as_deref_mut,
Vec::leak,
pointer::offset_from,
f32::TAU ja
f64::TAU. - MĂ€rgistus âconstâ, mis mÀÀratleb kasutamise vĂ”imaluse mis tahes kontekstis konstantide asemel, on rakendatud meetodites:
- new kÔigi mitte-nullsete tÀisarvude jaoks;
- checked_add, checked_sub, checked_mul, checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub ja saturating_mul kÔigi tÀisarvude jaoks;
- is_ascii_alphabetic, is_ascii_uppercase, is_ascii_lowercase, is_ascii_alphanumeric, is_ascii_digit, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii_whitespace ja is_ascii_control char ja u8 tĂŒĂŒpide jaoks.
- FreeBSD jaoks FreeBSD 11.4 tööriistakomplekt (FreeBSD 10 ei toeta LLVM 11).
Allikas: opennet.ru
