Rust 1.57 Chirongwa Mutauro Kuburitswa

Kuburitswa kweiyo system programming mutauro Rust 1.57, yakavambwa neMozilla purojekiti, asi iko zvino yakagadziridzwa pasi pekutsigirwa kwesangano rakazvimirira rerust Foundation, raburitswa. Mutauro unotarisana nekuchengetedza ndangariro, unopa otomatiki ndangariro manejimendi, uye inopa nzira dzekuwana yakakwira basa parallelism pasina kushandisa muunganidzi wemarara kana nguva yekumhanya (nguva yekumhanya inoderedzwa kuita yekutanga yekutanga uye kugadzirisa raibhurari yakajairwa).

Rust's otomatiki ndangariro manejimendi inobvisa zvikanganiso kana ichishandisa anongedza uye inodzivirira kubva kune yakaderera-level memory manipulation, sekuwana nzvimbo yekurangarira mushure mekunge yasunungurwa, null pointer dereferences, buffer overruns, nezvimwe. Kugovera maraibhurari, kuve nechokwadi kuungana uye kugadzirisa zvinotsamira, chirongwa ichi chiri kugadzira Cargo package maneja. Iyo crates.io repository inotsigirwa kuitisa maraibhurari.

Zvitsva zvikuru:

  • Iko kushandiswa kwe "kutya!" macro kwakagadziriswa. mumamiriro ezvinhu akagadzirwa panguva yekubatanidza, senge "const fn" zviziviso. Uyezve, kunze kwekushandisa "kutya!" const declarations inobvumira kushandiswa kwe "assert!" macro. uye mamwe maAPI akajairwa raibhurari. Kudzikamisa hakusati kwavhara iyo yese yekufomatidza zvivakwa, saka mune yazvino fomu iyo "kutya!" macro inogona kushandiswa chete netambo dzakasimba (kuvhunduka!(β€œ...")) kana neukoshi humwechete hwakapindirwa "&str" pakutsiva (kuvhunduka!("{}", a)), izvo zvinofanirwa kungogumira pakutsiva "{ }" pasina mafomati anofananidzira nemamwe marudzi. Mune ramangwana, kushanda kwema macros mumamiriro ezvinhu anoramba achiwedzerwa, asi hunyanzvi hwakadzikama hwakatokwana kuita cheki yekuongorora padanho rekubatanidza: const _: () = assert!(std::mem::size_of::() == 64 ); const _: () = assert!(std::mem::size_of::() == 8);
  • Iyo Cargo package maneja inobvumira kushandiswa kwemaprofile ane mazita epokana, asina kuganhurirwa ku "dev", "kuburitsa", "bvunzo" uye "bhenji". Semuenzaniso, kugonesa optimization padanho rekubatanidza (LTO) chete kana magungano ekupedzisira agadzirwa, unogona kugadzira "production" mbiri muCargo.toml uye wowedzera iyo "lto = chokwadi" mureza kwairi. Nekudaro, kana uchitsanangura yako wega profiles, iwe unofanirwa kutsanangura iyo iripo profil kuti ugare nhaka default marongero kubva kwairi. Muenzaniso uri pazasi unogadzira "production" mbiri inopindirana ne "release" mbiri nekubatanidza iyo "lto = chokwadi" mureza. Iyo mbiri pachayo inobatiswa nekudaidza zvinotakura ne "--profile kugadzirwa" sarudzo, uye zvigadzirwa zvegungano zvichaiswa mu "chinangwa / kugadzira" dhairekitori. [profile.production] nhaka = "kusunungurwa" lto = chokwadi
  • Iko kushandiswa kweTry_reserve yeVec, String, HashMap, HashSet uye VecDeque mhando yakagadzikana, iyo inokutendera kuti uchengete nzvimbo pamberi peimwe nhamba yezvinhu zverudzi rwakapihwa kuti uderedze kuwanda kwekugoverwa kwendangariro uye kudzivirira. kubondera panguva yekushanda nekuda kwekushaya ndangariro.
  • Inotenderwa kudoma macros ane simbi dzakamonana mumashoko akaita se "m!{ .. }.method()" uye "m!{ .. }?".
  • Kuitwa kweFaira ::read_to_end and read_to_string mabasa akagadziridzwa.
  • Unicode tsanangudzo yetsigiro yakagadziridzwa kune vhezheni 14.0.
  • Yakawedzera nhamba yemabasa akanyorwa "#[must_use]" kuti upe yambiro kana mutengo wekudzoka ukafuratirwa, izvo zvinobatsira kuziva zvikanganiso zvakakonzerwa nekufungidzira kuti basa richachinja kukosha pane kudzosera kukosha kutsva.
  • Yakawedzera kuyedza backend yekugadzira kodhi uchishandisa libgccjit.
  • Chikamu chitsva cheAPI chakaendeswa kuchikamu cheyakagadzikana, kusanganisira nzira uye mashandisirwo ehunhu zvakadzikamiswa:
    • [T; N]::as_mut_slice
    • [T; N]::se_chidimbu
    • kuunganidzwa::TryReserveError
    • HashMap::try_reserve
    • HashSet::try_reserve
    • String::try_reserve
    • String::try_reserve_exact
    • Vec::try_reserve
    • Vec::try_reserve_exact
    • VecDeque::try_reserve
    • VecDeque::try_reserve_exact
    • Iterator::map_while
    • iter::MapWhile
    • proc_macro::is_inowanikwa
    • Raira ::get_program
    • Command::get_args
    • Command::get_envs
    • Raira::get_current_dir
    • CommandArgs
    • CommandEnvs
  • Iyo "const" hunhu, iyo inosarudza kana ichigona kushandiswa mune chero mamiriro pachinzvimbo chezvisingaperi, inoshandiswa mukuita hint::unreachable_unchecked.
  • Iyo yechitatu nhanho yerutsigiro yakaitirwa iyo armv6k-nintendo-3ds, armv7-isingazivikanwe-linux-uclibceabihf, m68k-isingazivikanwe-linux-gnu, aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-ea-kmv7abi uye armv3a solid_aspXNUMX-eabihf mapuratifomu. Chikamu chechitatu chinosanganisira rutsigiro rwekutanga, asi pasina otomatiki kuyedzwa, kushambadza official kuvaka, kana kutarisa kuti kodhi inogona kuvakwa.

Source: opennet.ru

Voeg