Rust 1.61 Chirongwa Mutauro Kuburitswa

Mutauro wehurongwa hwese-chinangwa Rust 1.61, 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:

  • Zvinokwanisika kutsanangura yako pachako kudzoka makodhi kubva kune chikuru basa. Pakutanga, basa guru raRust raingokwanisa kudzorera mhando "()" (unit), iyo yaigara ichiratidza kubuda kwakabudirira kunze kwekunge mugadziri adaidzira zvakajeka "process::exit(code)" basa. MuRust 1.26, uchishandisa iyo isina kugadzikana Kumisa hunhu mubasa guru, zvaikwanisika kudzosa kukosha "Ok" uye "Err", zvinoenderana neEXIT_SUCCESS uye EXIT_FAILURE makodhi muzvirongwa zveC. MuRust 1.61, hunhu hwekugumisira hwagadzika, uye imwe yerudzi rweExitCode yakarongedzerwa kumiririra imwe kodhi yekudzoka, iyo inobvisa mhando dzemapuratifomu-chaiyo yekudzoka nekupa zvese zvakafanotsanangurwa zvinoramba zvichiitika KUBATSIRA uye KUKATA, uye Kubva nzira. kudzorera kodhi yekudzorera tsika. shandisa std:: process::ExitCode; fn chikuru() -> ExitCode {kana !check_foo() {dzokera ExitCode::from(8); } ExitCode::SUCCESS }
  • Kuwedzera masimba emabasa anotsanangurwa uchishandisa izwi rekuti "const fn" rakagadziriswa, iro rinogona kunzi kwete semabasa enguva dzose, asi rinoshandiswawo mune chero mamiriro pachinzvimbo chekugara. Aya mabasa anoverengerwa panguva yekuunganidza, kwete panguva yekumhanya, saka ari pasi pezvimwe zvirambidzo, sekugona kuverenga chete kubva kune zvinoramba zviripo. Mushanduro itsva, mashandiro ekutanga ane anongedza basa anotenderwa mukati me const mabasa (kugadzira, kupfuudza uye kukanda zvinongedzo zvinotenderwa, asi kwete kudana basa neinongedza); hunhu miganhu yegeneric parameters ye const mabasa akadai T: Copy; dynamically dispatchable hunhu (dyn Trait); impl Trait marudzi emabasa nharo uye kudzorera kukosha.
  • Rukova runobata Stdin, Stdout uye Stderr mu std::io ikozvino yava nehupenyu hwakamira ("'static") kana yakavharwa, ichibvumira zvivakwa se "let out = std::io::stdout().lock();" nekuwana mubato uye kuseta kiyi mukutaura kumwe.
  • Chikamu chitsva cheAPI chakaendeswa kuchikamu cheyakagadzikana, kusanganisira nzira uye mashandisirwo ehunhu zvakadzikamiswa:
    • Pini::static_mut
    • Pini::static_ref
    • Vec::chengeta_mut
    • VecDeque::retain_mut
    • Nyora kune Cursor <[u8; N]>
    • std::os::unix::net::SocketAddr::from_pathname
    • std::maitiro::ExitCode
    • std::maitiro::Kugumisa
    • std::thread::JoinHandle::is_finished
  • Iyo "const" hunhu, iyo inosarudza mukana wekuishandisa mune chero mamiriro pachinzvimbo chezvimiro, inoshandiswa mumabasa:
    • <*const T>::offset uye <*mut T>::offset
    • <*const T>::wrapping_offset uye <*mut T>::wrapping_offset
    • <*const T>::add uye <*mut T>::add
    • <*const T>::sub uye <*mut T>::sub
    • <*const T>::wrapping_add uye <*mut T>::wrapping_add
    • <*const T>::wrapping_sub uye <*mut T>::wrapping_sub
    • <[T]>::as_mut_ptr
    • <[T]>::as_ptr_range
    • <[T]>::as_mut_ptr_range

Pamusoro pezvo, iwe unogona kucherechedza chinyorwa "Rust: A Critical Retrospective" ine pfupiso yezviratidziro zveRust mutauro mushure mekunyora zviuru zana mitsara yekodhi mairi panguva yekuvandudzwa kweiyo Xous microkernel inoshanda sisitimu inoshandiswa mune firmware. Zvakaipa zvinosanganisira kuoma-ku-kunzwisisa syntax, kusakwana uye kuenderera mberi kwekuvandudzwa kwemutauro, kushaikwa kwezvivakwa zvinodzokororwa, matambudziko akajairika ane kuvimba kwekuvimba muCrates.io, uye kukosha kwekuchengeta imwe chirango kunyora kodhi yakachengeteka. Zvimiro zvakapfuura zvinotarisirwa zvinosanganisira maturusi ekudzokorora kodhi uye kugadzirisazve "hacks" yakawedzerwa panguva yekukurumidza prototyping.

Source: opennet.ru

Voeg