Rust 1.68 Chirongwa Mutauro Kuburitswa

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

  • Tsigiro yeSparse protocol yakagadziriswa muCargo package maneja uye crates.io repository, iyo inotsanangura nzira nyowani yekushanda neindekisi inoratidza mavhezheni aripo emapakeji ese aripo mune repository. Iyo itsva protocol inobvumidza iwe kuti uwedzere zvakanyanya kumhanya kwekushanda ne crates.io uye kugadzirisa matambudziko nekuyera nekuwedzera kuwedzera kwenhamba yemapakeji mune repository.

    Kuti uderedze kunonoka kunokonzerwa nekurodha indekisi izere, Sparse panzvimbo yekuwana iyo index uchishandisa Git, dhawunirodha zvakananga pamusoro peHTTPS chete inodiwa index data, inovhara kutsamira kwechimwe chirongwa. Iyo itsva index.crates.io sevhisi inoshandiswa kudzorera index data. Nekutadza, iyo protocol nyowani yakarongwa kuti ishandiswe muRust 1.70 bazi, uye zvisati zvaitika, kuti igone, unogona kuseta nharaunda inoshanduka "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" kana kuwedzera parameter 'protocol = kune "[registries.crates. -io]" chikamu che .cargo/config.toml faira "sparse"'.

  • Yakawedzerwa macro "pini!", iyo inobvumira kugadzira Pin<&mut T> chimiro kubva pashoko rekuti "T" ine pining yenzvimbo yenzvimbo yayo (kusiyana neBhokisi::pini haigoveri ndangariro pamurwi, asi inosunga pamwero we stack) .
  • A default memory allocation error handle inotsanangurwa, iyo inoshandiswa kana uchishandisa yakajairwa alloc package. Zvishandiso zvinogonesa alloc chete (isina std) zvino ichadaidza "kutya!" Mubati pane kutadza kwekugovera ndangariro, iyo inogona kubvumwa ne "#[panic_handler]". Zvirongwa zvinoshandisa raibhurari yestd zvicharamba zvichidhinda ruzivo rwemhosho kune stderr uye kuparara.
  • Chikamu chitsva cheAPI chakaendeswa kuchikamu cheyakagadzikana, kusanganisira nzira uye mashandisirwo ehunhu zvakadzikamiswa:
    • {core,std}::pini::pini!
    • impl Kubva ye{f32,f64}
    • std::path::MAIN_SEPARATOR_STR
    • impl DerefMut yePathBuf
  • Iyo "const" hunhu, iyo inosarudza mukana wekuishandisa mune chero mamiriro pachinzvimbo chekugara, inoshandiswa muVecDeque:: nyowani basa.
  • Android papuratifomu ikozvino inoda kanenge NDK r25 (API 19), i.e. Iyo shoma inotsigirwa Android vhezheni yakasimudzwa kusvika ku4.4 (KitKat).
  • Chikamu chechitatu chekutsigira kweSony PlayStation Vita chikuva chaitwa (armv7-sony-vita-newlibeabihf). Iyo yechitatu nhanho inoreva kutsigirwa kwekutanga, asi pasina otomatiki kuyedzwa, yekushambadzira official inovaka uye kutarisa kugona kuvaka kodhi.

Source: opennet.ru

Voeg