Rust 1.67 Chirongwa Mutauro Kuburitswa

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

  • Nezve async mabasa ane Ramangwana ::Kubuda, zvinogoneka kudoma "#[inofanira_kushandisa]" zvirevo zvinosanganisira yambiro kana mutengo wekudzoka ukafuratirwa, izvo zvinobatsira kuziva zvikanganiso zvakakonzerwa nefungidziro yekuti basa richachinja hunhu. pane kudzorera kukosha kutsva. #[inofanira_kushandisa] async fn bar() -> u32 {0} async fn caller() {bar().wait; } yambiro: yakambobuda isina kushandiswa yeramangwana yakadzoswa ne `bar` inofanira kushandiswa β€”> src/lib.rs:5:5 | 5 | bar().await; | ^^^^^^^^^^^^ | = chiziviso: `#[yambiro(isina kushandiswa_inofanira_kushandisa)]` iripo nekusarudzika
  • Kuitwa kweFIFO queues std::sync::mpsc (multi-producer single-consumer) yakagadziridzwa, iyo yakashandurwa kushandisa crossbeam-channel module uchichengetedza API yapfuura. Kuitwa kutsva kunosiyaniswa nekugadzirisa akati wandei matambudziko, kushanda kwepamusoro uye kurerutswa kwekodhi kugadzirisa.
  • Chikamu chitsva cheAPI chakaendeswa kuchikamu cheyakagadzikana, kusanganisira nzira uye mashandisirwo ehunhu zvakadzikamiswa:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • Iyo "const" hunhu, iyo inosarudza mukana wekuishandisa mune chero mamiriro pachinzvimbo chezvimiro, inoshandiswa mumabasa:
    • char::from_u32
    • char::kubva_digit
    • char::ku_digit
    • musimboti::char::from_u32
    • musimboti::char::kubva_digit
  • Chikamu chechitatu chetsigiro chakaitwa pakushandisa Rust muLinux kernel (linuxkernel), pamwe neiyo Sony PlayStation 1 (mipsel-sony-psx), PowerPC ine AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-isingazivikanwe-ku-) mapuratifomu qnx710, x86_64-pc-nto-qnx710). Chikamu chechitatu chinosanganisira rutsigiro rwekutanga, asi pasina otomatiki kuyedzwa, kushambadza official kuvaka, kana kutarisa kuti kodhi inogona kuvakwa.

Pamusoro pezvo, isu tinogona kucherechedza kuburitswa neARM kwezvigamba zvinobvumira kushandiswa kweRust mutauro kugadzira vatyairi uye Linux kernel modules dzakaunganidzwa kune masisitimu akavakirwa paAArch64 architecture.

Source: opennet.ru

Voeg