հրապարակված համակարգի ծրագրավորման լեզվի թողարկում Ժանգ 1.44, որը հիմնադրվել է Mozilla նախագծի կողմից։ Լեզուն կենտրոնանում է հիշողության անվտանգության վրա, ապահովում է հիշողության ավտոմատ կառավարում և ապահովում է գործիքներ բարձր առաջադրանքների զուգահեռության հասնելու համար՝ առանց աղբահանող և աղբահանող սարք օգտագործելու: Runtime.
Rust-ի հիշողության ավտոմատ կառավարումը վերացնում է ցուցիչները շահարկելիս սխալները և պաշտպանում է ցածր մակարդակի հիշողության մանիպուլյացիայի հետևանքով առաջացող խնդիրներից, ինչպիսիք են հիշողության տարածք մուտք գործելը այն ազատելուց հետո, զրոյական ցուցիչի մատնանշումները, բուֆերի գերակատարումները և այլն: Մշակվում է փաթեթների կառավարիչ՝ գրադարանները բաշխելու, հավաքումն ապահովելու և ծրագրի կողմից կախվածությունները կառավարելու համար: բեռ, որը թույլ է տալիս մեկ սեղմումով ստանալ ծրագրի համար անհրաժեշտ գրադարանները: Գրադարանները հյուրընկալելու համար աջակցվում է պահեստ crates.io.
Նոր թողարկման հայտարարության տեքստում Rust մշակողները ներգրավվել են քաղաքականության մեջ և ընդգծված հրաժարվել են հրապարակել Rust 1.44-ի փոփոխությունների ամբողջական ակնարկը՝ ի նշան ոստիկանական բռնության դեմ ցուցարարների հետ համերաշխության՝ նշելով, որ այս խնդիրն ավելի կարևոր է։ քան տեխնիկական գիտելիքների փոխանակումը։ Հիմնական նորամուծություններ:
Cargo փաթեթի կառավարիչը ինտեգրում է «բեռների ծառ» հրամանը, որը ցուցադրում է ծառի նման կախվածության գրաֆիկ: Ավելացվեց նաև «—կրկնօրինակներ» («բեռների ծառ -d») տարբերակը, որը թույլ է տալիս գնահատել կախվածությունը նույն փաթեթի տարբեր տարբերակներում:
Այն հավելվածների համար, որոնք կապված չեն std-ին («#![no_std]»), ասինխրոն ծրագրավորման տեխնիկայի աջակցությունն իրականացվում է «async» ֆունկցիայի, async move { ... } բլոկի և «.await» օպերատորի հիման վրա, որը: պարզեցնել գրավոր չարգելափակող մշակողների հիմնական հրամանների հոսքը:
Ընդարձակվող մոդուլի հիերարխիայի սահմանման սխեմայի աջակցությունն ավելացվել է վերլուծիչին: Օրինակ, հետևյալ կառուցվածքը սխալ չի առաջացնի՝ չնայած «foo/bar/baz.rs» մոդուլի փաստացի բացակայությանը (կառուցվածքը դեռևս իմաստային առումով անվավեր է և կարող է սխալ առաջացնել, սակայն փոփոխությունները կարելի է տեսնել և վերլուծել այստեղ. մակրո և պայմանական կազմման մակարդակ).
#[cfg(FALSE)] mod foo {
mod bar {
mod baz;
}
}
Rustc կոմպիլյատորն ավելացրել է «-C codegen-units» դրոշը աստիճանական ռեժիմում օգտագործելու հնարավորություն: catch_unwind-ի իրականացումը վերամշակվել է այնպես, որ այն ոչ մի ազդեցություն չունենա կատարողականի վրա, եթե անջատման գործընթացն անջատված է և բացառություններ չկան:
64-րդ մակարդակի աջակցությունը տրամադրվել է aarch64-unknown-none, aarch64-unknown-none-softfloat, arm86-apple-tvos և x64_XNUMX-apple-tvos հարթակների համար: Երրորդ մակարդակը ներառում է հիմնական աջակցություն, բայց առանց ավտոմատացված փորձարկման և պաշտոնական կառուցումների հրապարակման:
API-ների նոր մասը տեղափոխվել է կայուն կատեգորիա, ներառյալ կայունացված
PathBuf::հզորությամբ,
PathBuf::տարողություն,
PathBuf::պարզ,
PathBuf::պահուստ,
PathBuf::reserve_exact,
PathBuf::shrink_to_fit,
{f32|f64}::to_int_unchecked,
Դասավորություն::align_to,
Դասավորություն::pad_to_align,
Դասավորություն::զանգված և
Դասավորություն::ընդլայնել.
Ստանդարտ գրադարանի ընդլայնված գործառույթները.
Ավելացրել է հատուկ «vec![]» տարբերակ, որն ուղղակիորեն արտացոլվում է Vec::new(-ում)՝ թույլ տալով «vec![]»-ն օգտագործել կոնտեքստում հաստատունների փոխարեն:
Հատկանիշի իրականացումը (impl) ավելացվել է փոխակերպելու համար::Infallible Խանգարել.
OsString-ն իրականացնում է խելացի ցուցիչներ DerefMut и IndexMut, վերադարձնելով «&mut OsStr»-ը։
proc_macro::LexError-ն իրականացնում է fmt::Display և Error:
«const» հատկանիշը, որը որոշում է, թե արդյոք այն կարող է օգտագործվել ցանկացած համատեքստում հաստատունների փոխարեն, օգտագործվում է from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes և to_ne_bytes մեթոդներում բոլոր ամբողջ թվերի համար:
Windows-ի GNU հարթակների համար «.lib»-ի փոխարեն «.a» ձևաչափով ստատիկ գրադարաններ ստեղծելու աջակցություն:
LLVM-ի նվազագույն պահանջները բարձրացվել են մինչև LLVM տարբերակ 8: