publicÄts sistÄmas programmÄÅ”anas valodas izlaidums 1.44. rÅ«sa, ko dibinÄja Mozilla projekts. Valoda koncentrÄjas uz atmiÅas droŔību, nodroÅ”ina automÄtisku atmiÅas pÄrvaldÄ«bu un nodroÅ”ina rÄ«kus augsta uzdevumu paralÄlisma sasniegÅ”anai, neizmantojot atkritumu savÄcÄju un runtime.
Rust automÄtiskÄ atmiÅas pÄrvaldÄ«ba novÄrÅ” kļūdas, manipulÄjot ar rÄdÄ«tÄjiem, un aizsargÄ pret problÄmÄm, kas rodas no zema lÄ«meÅa atmiÅas manipulÄcijÄm, piemÄram, piekļuves atmiÅas apgabalam pÄc tÄ atbrÄ«voÅ”anas, nulles rÄdÄ«tÄju novirzÄm, bufera pÄrtÄriÅiem utt. Tiek izstrÄdÄts pakotÅu pÄrvaldnieks, lai izplatÄ«tu bibliotÄkas, nodroÅ”inÄtu montÄžu un pÄrvaldÄ«tu projekta atkarÄ«bas. krava, kas ļauj ar vienu klikŔķi iegÅ«t programmai nepiecieÅ”amÄs bibliotÄkas. Repozitorijs tiek atbalstÄ«ts bibliotÄku mitinÄÅ”anai crates.io.
JaunÄ laidiena paziÅojuma tekstÄ Rust izstrÄdÄtÄji iesaistÄ«jÄs politikÄ un kategoriski atteicÄs publicÄt pilnu Rust 1.44 izmaiÅu apskatu, tÄdÄjÄdi apliecinot solidaritÄti ar protestÄtÄjiem pret policijas vardarbÄ«bu, norÄdot, ka Å”is jautÄjums ir svarÄ«gÄks. nekÄ tehnisko zinÄÅ”anu apmaiÅa. Pamata jauninÄjumiem:
Kravas pakotnes pÄrvaldnieks integrÄ komandu ākravas koksā, kas parÄda kokam lÄ«dzÄ«gu atkarÄ«bas grafiku. Pievienota arÄ« opcija āādublikÄtiā (ākravas koks -dā), kas ļauj novÄrtÄt atkarÄ«bas dažÄdÄs vienas pakotnes versijÄs.
LietojumprogrammÄm, kas nav saistÄ«tas ar std ("#![no_std]"), asinhronÄs programmÄÅ”anas paÅÄmienu atbalsts tiek Ä«stenots, pamatojoties uz funkciju "async", asinhrono pÄrvietoÅ”anas bloku { ... } un operatoru ".await", kas vienkÄrÅ”ot nebloÄ·ÄjoÅ”o apdarinÄtÄju galvenÄs komandu plÅ«smas rakstÄ«Å”anu.
ParsÄtÄjam ir pievienots atbalsts paplaÅ”inÄmas moduļu hierarhijas definÄ«cijas shÄmai. PiemÄram, Ŕī konstrukcija neradÄ«s kļūdu, neskatoties uz faktisko moduļa "foo/bar/baz.rs" neesamÄ«bu (konstrukts joprojÄm ir semantiski nederÄ«gs un var izraisÄ«t kļūdu, taÄu izmaiÅas var redzÄt un parsÄt vietnÄ makro un nosacÄ«juma apkopoÅ”anas lÄ«menis):
#[cfg(FALSE)] mod foo {
mod bar {
mod baz;
}
}
Rustc kompilators ir pievienojis iespÄju izmantot karodziÅu ā-C codegen-unitsā inkrementÄlÄ režīmÄ. Catch_unwind ievieÅ”ana ir pÄrveidota tÄ, lai tÄ neietekmÄtu veiktspÄju, ja attÄ«Å”anas process ir atspÄjots un netiek pieļauti izÅÄmumi.
64. lÄ«meÅa atbalsts ir nodroÅ”inÄts platformÄm aarch64-unknown-none, aarch64-unknown-none-softfloat, arm86-apple-tvos un x64_XNUMX-apple-tvos. TreÅ”ais lÄ«menis ietver pamata atbalstu, taÄu bez automatizÄtas testÄÅ”anas un oficiÄlo bÅ«vÄjumu publicÄÅ”anas.
Jauna API daļa ir pÄrcelta uz stabilo kategoriju, tostarp stabilizÄtÄ
PathBuf::ar_kapacitÄti,
PathBuf::kapacitÄte,
PathBuf::clear,
PathBuf::rezerve,
PathBuf::rezerves_precīzs,
PathBuf::shrink_to_fit,
{f32|f64}::to_int_unchecked,
IzkÄrtojums::lÄ«dzinÄt_uz,
IzkÄrtojums::pad_to_align,
IzkÄrtojums::masÄ«vs un
IzkÄrtojums::paplaÅ”inÄt.
Standarta bibliotÄkas paplaÅ”inÄtÄs funkcijas:
Pievienots Ä«paÅ”s "vec![]" variants, kas tieÅ”i atspoguļots Vec::new(), ļaujot "vec![]" lietot kontekstÄ, nevis konstantes.
IezÄ«mes ievieÅ”ana (impl) ir pievienota, lai pÄrvÄrstu::Infallible Saputrot.
proc_macro::LexError ievieÅ” fmt::Display un Error.
AtribÅ«ts āconstā, kas nosaka, vai to var izmantot jebkurÄ kontekstÄ, nevis konstantes, tiek izmantots metodÄs from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes un to_ne_bytes visiem veselu skaitļu veidiem.
Pievienots atbalsts statisku bibliotÄku Ä£enerÄÅ”anai ".a" formÄtÄ, nevis ".lib" formÄtÄ GNU platformÄm operÄtÄjsistÄmÄ Windows.
LLVM minimÄlÄs prasÄ«bas ir paaugstinÄtas lÄ«dz LLVM 8. versijai.