notika sistÄmas programmÄÅ”anas valodas izlaidums 1.34. rÅ«sa, ko izstrÄdÄjis Mozilla projekts. Valoda koncentrÄjas uz atmiÅas droŔību, nodroÅ”ina automÄtisku atmiÅas pÄrvaldÄ«bu un nodroÅ”ina iespÄju sasniegt augstu uzdevumu paralÄlismu, neizmantojot atkritumu savÄcÄju vai izpildlaiku.
Rust automÄtiskÄ atmiÅas pÄrvaldÄ«ba atbrÄ«vo izstrÄdÄtÄju no manipulÄcijÄm ar rÄdÄ«tÄju un aizsargÄ pret problÄmÄm, kas rodas no zema lÄ«meÅa atmiÅas manipulÄcijÄm, piemÄram, pÄc brÄ«vas piekļuves atmiÅai, nulles rÄdÄ«tÄja atsauÄu, bufera pÄrtÄriÅu un tamlÄ«dzÄ«gi. 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.
Cargo pakotÅu pÄrvaldnieks ir pievienojis rÄ«kus darbam ar alternatÄ«viem pakotÅu reÄ£istriem, kas var pastÄvÄt kopÄ ar crates.io publisko reÄ£istru. PiemÄram, patentÄtu lietojumprogrammu izstrÄdÄtÄji tagad var izmantot savu privÄto reÄ£istru, ko var izmantot, uzskaitot atkarÄ«bas Cargo.toml, un piemÄrot saviem produktiem versiju veidoÅ”anas modeli, kas ir lÄ«dzÄ«gs crates.io, kÄ arÄ« norÄdÄ«t atkarÄ«bas uz abÄm kastÄm. io un savÄ reÄ£istrÄ.
Lai pievienotu ÄrÄjos reÄ£istrus failam .cargo/config (atrodas $HOME vai pakotÅu direktorijÄ) nodroÅ”inÄta sadaÄ¼Ä ā[reÄ£istri]ā, un, lai izmantotu ÄrÄjo reÄ£istru, katras atkarÄ«bas aprakstÄ Cargo.toml ir parÄdÄ«jusies opcija āreÄ£istrsā. Lai izveidotu savienojumu ar papildu reÄ£istru, vienkÄrÅ”i ievietojiet autentifikÄcijas pilnvaru failÄ ~/.cargo/credentials un palaidiet komandu
"kravas login --registry=my-registry" un lai publicÄtu paketi -
"kravas publicÄt -reÄ£istrs=mans-reÄ£istrs";
Pievienots pilns atbalsts operatora ā?ā izmantoÅ”anai. testos doktesti, ļaujot kÄ testus izmantot parauga kodu no dokumentÄcijas. IepriekÅ” operators
"?" var izmantot, lai apstrÄdÄtu kļūdas testa izpildes laikÄ tikai funkcijas āfn main()ā klÄtbÅ«tnÄ vai funkcijÄs ā#[test]ā;
PielÄgotos atribÅ«tos, kas definÄti, izmantojot procesuÄlos makro nodroÅ”inÄta iespÄja izmantot patvaļīgas marÄ·ieru kopas (ā#[attr($tokens)]ā, ā#[attr[$tokens]] un #[attr{$tokens}]ā). IepriekÅ” elementus varÄja norÄdÄ«t tikai koka/rekursÄ«vÄ formÄ, izmantojot virknes literÄļus, piemÄram, ā#[foo(bar, baz(quux, foo = ābarā)]ā, bet tagad ir iespÄjams izmantot uzskaitÄ«jumus (' #[diapazons(0. .10)]') un tÄdas konstrukcijas kÄ ā#[bound(T: MyTrait)]ā;
StabilizÄtie veidi (Ä«paŔība) MÄÄ£iniet no Šø TryInto, kas ļauj veikt tipu konvertÄÅ”anu ar kļūdu apstrÄdi. PiemÄram, tÄdas metodes kÄ from_be_bytes ar veselu skaitļu tipiem izmanto masÄ«vus kÄ ievadi, taÄu dati bieži tiek iegÅ«ti Slice veidÄ, un manuÄli konvertÄt starp masÄ«viem un slÄÅiem ir problemÄtiski. Ar jaunu pazÄ«mju palÄ«dzÄ«bu norÄdÄ«to darbÄ«bu var veikt lidojumÄ, izmantojot izsaukumu uz .try_into(), piemÄram, ālet num = u32::from_be_bytes(slice.try_into()?)ā. ReklÄmguvumiem, kas vienmÄr ir veiksmÄ«gi (piemÄram, no tipa u8 uz u32), ir pievienots kļūdas veids Nevainojams, kas nodroÅ”ina caurspÄ«dÄ«gu lietoÅ”anu
TryFrom visÄm esoÅ”ajÄm "From" implementÄcijÄm;
Funkcija ir novecojusi CommandExt::before_exec, kas ļÄva izpildÄ«t apstrÄdÄtÄju pirms exec palaiÅ”anas, kas tika izpildÄ«ts bÄrna procesa kontekstÄ, kas tika izveidots pÄc fork() izsaukuma. Å Ädos apstÄkļos daži vecÄkprocesa resursi, piemÄram, failu deskriptori un kartÄtÄs atmiÅas apgabali, var tikt dublÄti, kas var izraisÄ«t nedefinÄtu darbÄ«bu un nepareizu bibliotÄku darbÄ«bu.
Pirms_exec vietÄ ieteicams izmantot nedroÅ”u funkciju CommandExt::pre_exec.
StabilizÄti ar parakstu un neparakstÄ«tu atomu veselu skaitļu veidi, kuru izmÄrs ir no 8 lÄ«dz 64 bitiem (piemÄram, AtomicU8), kÄ arÄ« parakstÄ«tos veidus NonZeroI[8|16|32|64|128].
Jauna API daļa ir pÄrvietota uz stabilo kategoriju, tostarp Any::type_id, Error::type_id, slice::sort_by_cached_key, str::escape_*, str::split_ascii_whitespace, Instant::checked_[add|sub ] un SystemTime metodes ir stabilizÄtas ::checked_[add|sub]. Funkcijas iter::from_fn un iter::successors ir stabilizÄtas;
Visiem veselu skaitļu veidiem ir ieviestas metodes checked_pow, saturating_pow, wrapping_pow un overflowing_pow;