argitaratua sistemaren programazio lengoaia kaleratzea Herdoila 1.44, Mozilla proiektuak sortua. Lengoaiak memoriaren segurtasunean oinarritzen da, memoria automatikoki kudeatzen du eta zereginen paralelismo handia lortzeko tresnak eskaintzen ditu zabor-biltzailerik erabili gabe eta runtime.
Rust-en memoria-kudeaketa automatikoak akatsak ezabatzen ditu erakusleak manipulatzean eta maila baxuko memoriaren manipulaziotik sortzen diren arazoetatik babesten du, hala nola, memoria-eskualde batera atzitzea askatu ondoren, erakusle nuluen deserreferentziak, buffer gainditzeak, etab. Liburutegiak banatzeko, muntaia ziurtatzeko eta proiektuaren mendekotasunak kudeatzeko pakete-kudeatzailea garatzen ari da. Zama, programarako beharrezkoak diren liburutegiak klik bakarrean eskuratu ahal izateko. Biltegi bat onartzen da liburutegiak ostatatzeko kaxak.io.
Argitalpen berriaren iragarpenaren testuan, Rust-eko garatzaileek politikan inplikatu ziren eta Rust 1.44-ko aldaketen berrikuspen osoa argitaratzeari uko egin zioten poliziaren indarkeriaren aurkako manifestariekiko elkartasun seinale gisa, gai hau garrantzitsuagoa dela adieraziz. ezagutza teknikoen trukea baino. Oinarrizkoa berrikuntzak:
Cargo paketeen kudeatzaileak "karga zuhaitza" komandoa integratzen du, zuhaitz-itxurako mendekotasun grafikoa bistaratzen duena. Gainera, “—bikoiztuak” aukera gehitu da (“karga-zuhaitza -d”), pakete beraren bertsio ezberdinetako mendekotasunak ebaluatzeko aukera ematen duena.
Std batera lotzen ez diren aplikazioetarako ("#![no_std]"), programazio asinkrono-tekniketarako euskarria ezartzen da "async" funtzioan, mugimendu asinkronoan { ... } blokean eta ".wait" eragilean oinarrituta. blokeatzen ez diren kudeatzaileen idazketa erraztu komando-fluxu nagusia.
Modulu hedagarrien hierarkia definizio-eskema baten laguntza gehitu da analizatzaileari. Adibidez, hurrengo eraikuntzak ez du errorerik sortuko, "foo/bar/baz.rs" modulua ez dagoen arren (eraikuntza oraindik semantikoki baliogabea da eta errore bat sor dezake, baina aldaketak hemen ikusi eta analizatu daitezke). makro eta baldintzapeko konpilazio maila):
#[cfg(FALSE)] mod foo {
mod barra {
mod baz;
}
}
Rustc konpilatzaileak "-C codegen-units" bandera modu inkrementalean erabiltzeko gaitasuna gehitu du. Catch_unwind-en inplementazioa berraztertu da, errendimenduan eraginik izan ez dezan, desegiteko prozesua desgaituta badago eta salbuespenik jartzen ez bada.
64. mailako laguntza eman da aarch64-unknown-none, aarch64-unknown-none-softfloat, arm86-apple-tvos eta x64_XNUMX-apple-tvos plataformetarako. Hirugarren mailak oinarrizko euskarria dakar, baina proba automatizaturik eta eraikuntza ofizialen argitalpenik gabe.
APIen zati berri bat egonkor kategoriara eraman da, egonkortuta barne
PathBuf::with_capacity,
PathBuf::ahalmena,
PathBuf::garbitu,
PathBuf::erreserba,
PathBuf::reserve_exact,
PathBuf::shrink_to_fit,
{f32|f64}::to_int_unchecked,
Diseinua::align_to,
Diseinua::pad_to_align,
Layout::array eta
Diseinua::hedatu.
Liburutegi estandarraren funtzio hedatuak:
Vec::new()-en zuzenean islatzen den "vec![]" aldaera berezi bat gehitu da, "vec![]" testuinguruan konstanteen ordez erabiltzeko aukera emanez.
Ezaugarriaren inplementazio bat (impl) gehitu da bihurtzeko::Infallible hash.
OsString-ek erakusle adimendunak ezartzen ditu DerefMut и IndexMut, "&mut OsStr" itzuliz.
proc_macro::LexError fmt::Bistaratzea eta Error inplementatzen ditu.
Konstanteetan ordez edozein testuingurutan erabil daitekeen ala ez zehazten duen “const” atributua from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes eta to_ne_bytes metodoetan erabiltzen da osoko mota guztietarako.
Windows-eko GNU plataformetarako ".a" formatuan ".lib"-en ordez liburutegi estatikoak sortzeko laguntza gehitu da.
LLVMrako gutxieneko eskakizunak LLVM 8. bertsiora igo dira.