Rust 1.65 Chirongwa Mutauro Kuburitswa

Mutauro wehurongwa hwese-chinangwa Rust 1.65, wakavambwa neMozilla purojekiti asi ikozvino wakagadziridzwa pasi perubatsiro rwesangano rakazvimirira rerust Foundation, raburitswa. Mutauro unotarisana nekuchengetedza ndangariro uye unopa nzira dzekuwana yakakwirira basa parallelism uchidzivirira kushandiswa kwemarara uye nguva yekumhanya (nguva yekumhanya inoderedzwa kusvika yekutanga yekutanga uye kugadzirisa raibhurari yakajairwa).

Rust's memory yekubata nzira dzinochengetedza mugadziri kubva mukukanganisa kana achibata anonongedzera uye kudzivirira kubva kumatambudziko anomuka nekuda kweakadzika-level ndangariro kubata, sekuwana nzvimbo yekurangarira mushure mekunge yasunungurwa, kudzoreredza null pointer, buffer overruns, nezvimwe. Kugovera maraibhurari, kupa kuvaka uye kugadzirisa zvinotsamira, purojekiti inovandudza Cargo package maneja. Iyo crates.io repository inotsigirwa kuitisa maraibhurari.

Kuchengetedzwa kwendangariro kunopihwa muRust panguva yekuunganidza kuburikidza nekutariswa kwekutarisa, kuchengeta track yemuridzi wechinhu, kuchengeta track yehupenyu hwechinhu (scopes), uye kuongorora iko kurongeka kwekuwana ndangariro panguva yekuita kodhi. Ngura inopawo dziviriro kubva pahuwandu hwekufashukira, inoda kusungirirwa kwekutanga kwemhando dzakasiyana usati washandiswa, inobata zvikanganiso zviri nani muraibhurari yakajairwa, inoshandisa iyo pfungwa yezvisingachinjiki mareferensi uye zvinosiyana nekusarudzika, inopa yakasimba static typing kuderedza zvikanganiso zvine musoro.

Zvitsva zvikuru:

  • Yakawedzerwa tsigiro yemhando dzakabatana (GAT, Generic Associated Types), izvo zvinoita kuti zvikwanise kugadzira mhando dzemhando dzakabatanidzwa neimwe mhando uye dzinokubvumidza iwe kubatanidza vanovaka mhando nehunhu. hunhu Foo { type Bar ; }
  • Izwi rekuti "rega ... zvimwe" raitwa, richikubvumidza kuti utarise chimiro chekuenzanisa mamiriro mukati mukati mekutaura kwe "rega" uye shandisa kodhi isingaenderane kana patani isingaenderane. rega Ok(count) = u64::from_str(count_str) zvimwe {kuvhunduka!("Haigone kutara nhamba yese:'{count_str}'"); };
  • Bvumira kushandiswa kwechirevo chekuzorora kuti ubude mabhuroki akatumidzwa nguva isati yakwana, uchishandisa zita rekuvhara (label) kuratidza block ichamiswa. rega mhedzisiro = 'block: {do_thing(); kana condition_not_met() {break 'block 1; } do_next_thing(); kana condition_not_met() {break 'block 2; } do_last_thing(); 3 };
  • Kune Linux, kugona kuchengetedza zvakasiyana debugging ruzivo (split-debuginfo), yaimbove iripo chete yeMacOS platform, yakawedzerwa. Paunenge uchitsanangura "-Csplit-debuginfo=unpacked" sarudzo, debuginfo data muDWARF format ichachengetwa mumafaira ezvinhu zvakasiyana-siyana ane ".dwo" extension. Kudoma "-Csplit-debuginfo=packed" kuchagadzira pasuru imwe chete mu ".dwp" format iyo inosanganisira data yese yedebuginfo yeprojekti. Kubatanidza debuginfo zvakananga muchikamu che .debug_* chezvinhu zveELF, unogona kushandisa "-Csplit-debuginfo=off" sarudzo.
  • Chikamu chitsva cheAPI chakaendeswa kuchikamu cheyakagadzikana, kusanganisira nzira uye mashandisirwo ehunhu zvakadzikamiswa:
    • std::backtrace::Backtrace
    • Yakasungwa::se_ref
    • std::io::verenga_ku_tambo
    • ::cast_mut
    • ::cast_const
  • Iyo "const" hunhu, iyo inosarudza mukana wekuishandisa mune chero mamiriro pachinzvimbo chezvisingaperi, inoshandiswa mumabasa ::offset_from uye ::offset_from.
  • Sechikamu chedanho rekupedzisira rekuendesa kuitiswa kweLSP (Language Server Protocol) protocol kune rust-analyzer, iyo yakapera nguva yekushandiswa kweRust Language Server (RLS) yakatsiviwa neiyo stub server inopa yambiro ine zano rekuchinja kune. kushandisa rust-analyzer.
  • Munguva yekubatanidza, tsigiro yekumisikidzwa kweMIR yepakati kodhi inogoneswa, iyo inomhanyisa kuunganidzwa kweyakajairwa crate mapakeji ne3-10%.
  • Kumhanyisa kuvaka kwakarongwa, Cargo package maneja inopa kurongeka kwemabasa akamirira kuitwa mumutsara.

Pamusoro pezvo, iwe unogona kucherechedza kubvunzurudza nezve kushandiswa kweRust mutauro kuVolvo kugadzira zvikamu zvemotokari ruzivo masisitimu. Iko hakuna hurongwa hwekunyora zvakare iripo uye yakaedzwa kodhi muRust, asi kune nyowani kodhi, Rust ndiyo imwe yeanosarudza sarudzo yekuvandudza mhando pamitengo yakaderera. Mapoka anoshanda ane chekuita nekushandiswa kweRust mutauro akagadzirwawo mumasangano emotokari AUTOSAR (AUTomotive Open System ARchitecture) uye SAE (Society of Automotive Engineers).

Pamusoro pezvo, David Kleidermacher, mutevedzeri wemutungamiri weinjiniya weGoogle, akataura nezve kududzirwa kwekodhi inoshandiswa mupuratifomu yeAroid kubata makiyi ekunyorera muRust, pamwe nekushandiswa kweRust mukuitwa kweDNS pamusoro peHTTPS protocol mustack. yeUWB- machipisi (Ultra-Wideband) uye mune virtualization chimiro (Android Virtualization Framework) yakabatana neTensor G2 chip. Zvitsva zvitsva zveBluetooth neWi-Fi, zvakanyorwa patsva muRust, zvakare zviri kugadzirwa Android. Iyo yakajairika zano ndeyekusimbisa zvishoma nezvishoma chengetedzo, kutanga nekushandura iyo inonyanya kunetseka uye yakakosha software zvikamu kuRust, uyezve kuwedzera kune mamwe ane hukama masystem. Gore rapfuura, mutauro weRust wakaverengerwa mune rondedzero yemitauro inotenderwa kugadzira iyo Android chikuva.

Source: opennet.ru

Voeg