Mwepụta nke asụsụ mmemme izugbe nke Rust 1.65, nke ọrụ Mozilla hiwere, mana nke emepụtara ugbu a n'okpuru nkwado nke otu nọọrọ onwe ya na-abụghị uru Rust Foundation, ka ebipụtala. Asụsụ ahụ na-elekwasị anya na nchekwa nchekwa ma na-enye ụzọ iji nweta ọrụ dị elu na parallelism ma na-ezere iji onye na-ekpofu ihe mkpofu na oge ịgba ọsọ (oge ọ na-agba ọsọ na-ebelata ka ọ bụrụ mmalite na nhazi nke ọbá akwụkwọ ọkọlọtọ).
Ụzọ ijikwa ebe nchekwa rust na-azọpụta onye nrụpụta site na njehie mgbe ị na-emegharị ihe nrịbama ma chebe onwe ya pụọ na nsogbu ndị na-ebilite n'ihi njikwa ebe nchekwa dị ala, dị ka ịnweta ebe nchekwa mgbe a tọhapụrụ ya, iwepụ pointers null, buffer overruns, wdg. Iji kesaa ọba akwụkwọ, nye ihe na-ewuli elu ma jikwaa ịdabere, ọrụ ahụ na-emepụta onye njikwa ngwugwu Cargo. A na-akwado ebe nchekwa crates.io maka ọba akwụkwọ nnabata.
A na-enye nchekwa nchekwa na nchara n'oge a na-achịkọta site na ntụle ntụnye aka, idobe usoro nwe ihe, idobe oge ndụ ihe (scopes), na ịlele izi ezi nke ịnweta ebe nchekwa n'oge mmebe koodu. Nchara na-enyekwa nchebe pụọ na integer njupụta, na-achọ mmalite mmalite nke ụkpụrụ agbanwe agbanwe tupu eji ya, na-edozi njehie nke ọma n'ọbá akwụkwọ ọkọlọtọ, na-etinye echiche nke ntụgharị na mgbanwe na-adịghị agbanwe agbanwe na ndabara, na-enye akara static siri ike iji belata njehie ezi uche dị na ya.
Isi ihe ọhụrụ:
- Nkwado agbakwunyere maka ụdị ejikọta ọnụ (GAT, Ụdị Associated Generic), nke na-eme ka o kwe omume ịmepụta ụdị aha na-ejikọta ya na ụdị ọzọ ma na-enye gị ohere ijikọta ụdị ndị na-emepụta ihe na àgwà. àgwà Foo {ụdị Bar<'x>; }
- Emejuputala okwu "ka ... ọzọ", na-enye gị ohere ịlele ọnọdụ dabara adaba kpọmkwem n'ime okwu "ka" wee mee koodu aka ike ma ọ bụrụ na ụkpụrụ ahụ adabaghị. ka Ok (gụọ) = u64 :: from_str (count_str) ọzọ {egwu! };
- Hapụ iji nkwupụta nkwụsịtụ pụọ na ngọngọ aha ya n'oge akaghị aka, na-eji aha ngọngọ (labelụ) iji chọpụta ngọngọ a ga-akwụsị. ka nsonaazụ = 'gbochi: {eme_thing(); ma ọ bụrụ na condition_not_met () {na-agbaji' ngọngọ 1; } ime_ihe ọzọ (); ma ọ bụrụ na condition_not_met () {gbajikwa 'block 2; } mee_ihe ikpeazụ (); 3 };
- Iji Linux Agbakwunyere ikike ịchekwa ozi nrụzi iche iche (split-debuginfo), nke dịbu naanị maka ikpo okwu ahụ macOSMgbe ị na-akọwapụta nhọrọ "-Csplit-debuginfo=unpacked", a ga-echekwa data debuginfo na usoro DWARF n'ime ọtụtụ faịlụ ihe dị iche iche yana ndọtị ".dwo". Mgbe ị na-akọwapụta "-Csplit-debuginfo=packed," a ga-emepụta otu ngwugwu na usoro ".dwp", gụnyere data debuginfo niile maka ọrụ ahụ. Iji tinye debuginfo ozugbo na ngalaba .debug_* nke ihe ELF, ị nwere ike iji nhọrọ "-Csplit-debuginfo=off".
- Atụgharịla akụkụ ọhụrụ nke API n'ụdị nke kwụsiri ike, gụnyere ụzọ na mmejuputa omume nke ejiri mesie ike:
- std :: backtrace :: Backtrace
- Ejide:: as_ref
- std :: io :: gụọ_to_string
- <*const T>:: cast_mut
- <*mut T>:: cast_const
- A na-eji àgwà "const", nke na-ekpebi ohere iji ya mee ihe n'ọnọdụ ọ bụla kama ịnọchite anya, na ọrụ <* const T&> :: offset_from na <* mut T> :: offset_from
- Dị ka akụkụ nke ikpeazụ ogbo nke na-ebufe mmejuputa iwu nke LSP (Language Server Protocol) protocol ka nchara-analyzer, ihe ochie mmejuputa iwu nke Rust Language Server (RLS) dochie na ihe nkesa stub nke na-enye ịdọ aka ná ntị na aro ka ịgbanwee gaa. iji nchara-analyzer.
- N'oge a na-achịkọta, a na-akwado nkwado maka ntinye akara nke koodu etiti MIR, nke na-eme ka nchịkọta nke ngwugwu crate dị ngwa site na 3-10%.
- Iji mee ka ụlọ a na-eme atụmatụ dị ngwa, onye njikwa ngwungwu Cargo na-enye nhazi ọrụ ndị na-echere igbu egbu na kwụ n'ahịrị.
Na mgbakwunye, ị nwere ike ịhụ N'ajụjụ ọnụ a gbasara iji asụsụ Rust na Volvo mepụta akụkụ nke sistemụ ozi ụgbọ ala. Enweghị atụmatụ idegharị koodu dị adị na nke a nwalere na Rust, mana maka koodu ọhụrụ, nchara bụ otu n'ime nhọrọ kachasị mma maka imeziwanye ogo na ọnụ ala dị ala. Emebekwara otu ndị na-arụ ọrụ metụtara iji asụsụ Rust n'otu ụlọ ọrụ ụgbọ ala AUTOSAR (AUTomotive Open System Architecture) na SAE (Society of Automotive Engineers).
Na mgbakwunye, David Kleidermacher, osote onyeisi oche nke injinịa nke Google, kwuru maka ntụgharị koodu ejiri mee ihe na ikpo okwu ahụ gaa na asụsụ Rust. Android maka ijikwa igodo nzuzo, yana iji Rust na mmejuputa DNS n'elu protocol HTTPS, na nchịkọta maka ibe UWB (Ultra-Wideband) na na usoro nhazi virtualization (Android Nhazi Virtualization) jikọtara ya na mgbawa Tensor G2. Maka Android A na-emepụtakwa ihe ọhụrụ Bluetooth na Wi-Fi, nke e degharịrị na Rust. Atụmatụ zuru oke bụ iji nwayọọ nwayọọ mee ka nchekwa sie ike, nke mbụ site n'ibuga ihe ndị kacha dị ize ndụ na nke dị oke mkpa na Rust, wee gbasaa na sistemụ ndị ọzọ metụtara ya. N'afọ gara aga, etinyere Rust n'ime asụsụ ndị a nabatara maka mmepe ikpo okwu. Android.
isi: opennet.ru
