Rust 1.60 Chirongwa Mutauro Kuburitswa

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

  • Iyo rustc compiler ine yakagadzikana LLVM-yakavakirwa sisitimu yekugadzira yekuvhara data inoshandiswa kuongorora kuvharwa kwekodhi panguva yekuyedzwa. Kuti ugone kugonesa data yekuvhara panguva yegungano, unofanirwa kushandisa "-Cinstrument-coverage" mureza, semuenzaniso, kutanga gungano ne "RUSTFLAGS =" -C chiridzwa-chivharo" cargo kuvaka". Mushure mekushandisa faira rinoshandiswa rakagadzirwa nenzira iyi, iyo default.profraw faira ichachengetwa mudhairekitori yemazuva ano, kuitira kugadzirisa iyo iwe unogona kushandisa llvm-profdata utility kubva kune llvm-tools-preview chikamu. Iyo inobuda yakagadziriswa nellvm-profdata inogona kupfuudzwa kune llvm-cov kuti ibudise inotsanangurwa kodhi yekuvhara mushumo. Ruzivo nezve chinongedzo kune kodhi kodhi inotorwa kubva kune inotepfenyurwa faira iri kuongororwa, iyo inosanganisira inodiwa data nezve kubatana pakati pekuvhara counter uye kodhi. 1| 1|fn chikuru() { 2| 1| println!("Mhoro, nyika!"); 3| 1|}
  • Mune maneja wekutakura zvinhu, kutsigirwa kwemureza we "-timings" kwakagadziriswa, izvo zvinosanganisira kugadzirwa kwemushumo wakadzama pamusoro pekufambira mberi kwekuvaka uye nguva yekuuraya nhanho imwe neimwe. Chirevo chacho chinogona kubatsira pakugadzirisa kushanda kwegungano.
  • Iyo cargo package maneja inopa syntax nyowani yemagadzirirwo ezvisungo kuunganidza uye kusarudzwa kwezvisarudzo zvinotsamira, zvakagadziridzwa muCargo.toml faira nekunyora runyoro rwezvivakwa zvine mazita muchikamu che [maficha] uye yakagadziriswa nekugonesa zvivakwa panguva yekuvakwa kwepakeji. uchishandisa β€œ--zvinhu” mureza. Iyo vhezheni itsva inowedzera rutsigiro rwekutsamira munzvimbo dzakasiyana dzemazita uye isina kusimba kutsamira.

    Muchiitiko chekutanga, zvinogoneka kushandisa maelementi ane prefix "dep:" mukati me[zvikamu]" chikamu kubatanidza zvakajeka kune inosarudzika yekutsamira pasina kumiririra izvi zvinoenderana sechinhu. Muchiitiko chechipiri, tsigiro yekumaka nechiratidzo β€œ?” yawedzerwa. ("package-name?/feature-name") zvingada kutsamira zvinofanirwa kuverengerwa chete kana chimwe chivako chinosanganisira kutsamira. Semuenzaniso, mumuenzaniso uri pazasi, kugonesa iyo serde pfuma inogonesa "serde" kutsamira, pamwe ne "serde" pfuma ye "rgb" kutsamira, asi chete kana "rgb" kutsamira kwakagoneswa kumwewo: [dependencies] serde = {vhezheni = "1.0.133", sarudzo = chokwadi} rgb = {shanduro = "0.8.25", sarudzo = chokwadi } [zvinhu] serde = ["dep:serde", "rgb?/serde"]

  • Tsigiro yekuwedzera kuunganidzwa, iyo yakaremara mukuburitswa kwekupedzisira, yakadzoswa. Iyo compiler bug yakonzera kuti chimiro chivharwe chagadziriswa.
  • Yakagadzirisa mamwe matambudziko nekupa Instant timers nevimbiso ye monotonic timing, iyo inofunga nezvenguva inoshandiswa nehurongwa muhope mode. Kare, OS API yaishandiswa pese pazvinogoneka kushandisa timer, iyo isingatarise mamiriro ezvinhu anonetsa anotyora monotony yenguva, senge matambudziko ehardware, kushandiswa kwekuona, kana kukanganisa muhurongwa hwekushandisa.
  • Chikamu chitsva cheAPI chakaendeswa kuchikamu cheyakagadzikana, kusanganisira nzira uye mashandisirwo ehunhu zvakadzikamiswa:
    • Arc::new_cyclic
    • Rc::new_cyclic
    • slice ::EscapeAscii
    • <[u8]>::escape_ascii
    • u8::kutiza_ascii
    • Vec::spare_capacity_mut
    • PamweUninit::kufungidzira_init_kudonha
    • PamweUninit::fungira_init_verenga
    • i8::abs_diff
    • i16::abs_diff
    • i32::abs_diff
    • i64::abs_diff
    • i128::abs_diff
    • isize::abs_diff
    • u8::abs_diff
    • u16::abs_diff
    • u32::abs_diff
    • u64::abs_diff
    • u128::abs_diff
    • shandisa::abs_diff
    • Ratidza io ::ErrorKind
    • Kubva kune ExitCode
    • Kwete zve! (rudzi "hazvina")
    • _Op_Govera<$t>
    • arch::is_aarch64_feature_yaonekwa!
  • Nhanho yechitatu yerutsigiro yakashandiswa kune mips64-openwrt-linux-musl* uye armv7-isingazivikanwe-linux-uclibceabi (softfloat) mapuratifomu. Chikamu chechitatu chinosanganisira rutsigiro rwekutanga, asi pasina otomatiki kuyedzwa, kushambadza official kuvaka, kana kutarisa kuti kodhi inogona kuvakwa.
  • Iyo compiler yakachinjirwa kushandisa LLVM 14.

Mukuwedzera, iwe unogona kucherechedza:

  • Yakawedzera tsigiro yebootstrapping iyo rustc compiler uchishandisa rustc_codegen_gcc backend, iyo inokutendera iwe kushandisa libgccjit raibhurari kubva kuGCC purojekiti sekodhi jenareta mu rustc, iyo inobvumira rustc kupa rutsigiro rwezvivakwa uye optimizations inowanikwa muGCC. Kukwidziridzwa kunoreva kugona kushandisa GCC-based code generator mu rustc kuvaka iyo rustc compiler pachayo. Padivi rinoshanda, chimiro ichi chinokutendera iwe kuti uvake ngura zvirongwa zvezvivakwa izvo zvaisambotsigirwa murustc.
  • Kuburitswa kweuutils coreutils 0.0.13 toolkit iripo, mukati umo analogue yeGNU Coreutils package, yakanyorwa patsva mumutauro weRust, iri kugadzirwa. Coreutils inouya nezvinhu zvinopfuura zana, zvinosanganisira rudzi, katsi, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, uye ls. Chinangwa chepurojekiti ndechekugadzira imwe nzira yekushandiswa kweCoreutils, inokwanisa kushanda paWindows, Redox uye Fuchsia mapuratifomu, pamwe nekugovera pasi pebvumirano yeMIT rezinesi, panzvimbo yeGPL copyleft rezinesi.

    Iyo vhezheni itsva yakavandudza mashandisirwo ezvishandiso zvakawanda, kusanganisira zvakanyanya kunatsiridza kuenderana kweCP, dd, df, split uye tr zvinoshandiswa nevamwe vavo kubva kuGNU chirongwa. Mapepa epamhepo akapihwa. Iyo clap parser inoshandiswa kupeta nharo dzemutsara wemirairo, izvo zvakavandudza kubuda kwe "--help" mureza uye nekuwedzera tsigiro yezvipfupiso zvemirairo mirefu (semuenzaniso, unogona kudoma "ls -col" pachinzvimbo che "ls -color. ”).

Source: opennet.ru

Voeg