Rust 1.57 Siidaynta Luuqada Barnaamijaynta

Siideynta luqadda barnaamijka nidaamka Rust 1.57, oo uu aasaasay mashruuca Mozilla, laakiin hadda lagu horumariyay hoosta ururka madax-bannaan ee aan macaash doonka ahayn ee Rust Foundation, ayaa la daabacay. Luqadda waxay diiradda saartaa badbaadada xusuusta, waxay bixisaa maaraynta xusuusta oo toos ah, waxayna bixisaa hab lagu gaaro isbarbardhigga hawsha sare iyada oo aan la isticmaalin qashin ururiyaha ama wakhtiga runtime (waqtiga runtime wuxuu hoos u dhigayaa bilowga aasaasiga ah iyo dayactirka maktabadda caadiga ah).

Maareynta xusuusta tooska ah ee Rust's waxay tirtirtaa khaladaadka marka la maamulayo tilmaamayaasha waxayna ka ilaalisaa dhibaatooyinka ka dhasha khalkhalgelinta heerka hoose ee xusuusta, sida gelitaanka gobolka xusuusta ka dib markii la sii daayay, tilmaame null ah, dulsaar xad dhaaf ah, iwm. Si loo qaybiyo maktabadaha, loo hubiyo isu-ururinta iyo maareynta ku-tiirsanaanta, mashruucu wuxuu horumarinayaa maareeyaha xirmada xamuulka. Kaydka crates.io waxaa lagu taageeraa martigelinta maktabadaha.

Hal-abuurka ugu muhiimsan:

  • Isticmaalka makro β€œargagax!” waa la xasiliyay. xaaladaha la abuuray inta lagu guda jiro ururinta, sida "const fn" caddaynta. Intaa waxaa dheer, marka lagu daro isticmaalka "argagaxa!" ku dhawaaqida const waxay ogolanaysaa isticmaalka makro "sheeg!" iyo API-yada maktabadaha kale ee caadiga ah. Xasilloonidu wali ma daboolin dhammaan kaabayaasha qaabaynta, markaa qaabka ay hadda tahay makro β€œargagax!” kaliya waxaa loo isticmaali karaa xargaha taagan (argagax!("..."))) ama hal qiime is dhexgal ah "&str" marka la bedelayo ( argagax! }" iyada oo aan la habayn tilmaamayaasha iyo noocyada kale. Mustaqbalka, ku-dhaqanka macros ee xaaladaha joogtada ah waa la ballaarin doonaa, laakiin awoodaha la xasiliyay ayaa horeyba ugu filnaa in lagu sameeyo hubinta caddaynta marxaladda isku-darka: const _: () = caddayn!(std::mem:: size_of::): ()== 64); const _: () = cadeyn!(std::mem:: size_of:: ()== 8);
  • Maareeyaha xirmada xamuulka wuxuu ogol yahay isticmaalka profiles leh magacyo aan sabab lahayn, oo aan ku xaddidnayn "dev", "siideyn", "tijaabo" iyo "kursiga". Tusaale ahaan, si aad awood ugu yeelatid hagaajinta marxaladda isku xirka (LTO) kaliya marka isu imaatinka ugu dambeeya la soo saaro, waxaad samayn kartaa astaanta "wax soo saarka" ee Cargo.toml oo ku dar "lto = run" calanka. Si kastaba ha ahaatee, marka aad qeexayso profiles adiga kuu gaar ah, waa in aad qeexdaa profile jira si aad u dhaxli default settings ka. Tusaalaha hoose wuxuu abuuraa astaanta "wax soo saarka" oo kabaysa astaanta "sii daynta" iyadoo lagu daray calanka "lto = run". Muuqaalka laftiisa waxaa lagu hawlgeliyaa iyadoo la wacayo xamuulka leh ikhtiyaarka "-profile production", iyo artifacts shirka waxaa la gelin doonaa tusaha "bartilmaameedka/soosaarka". [profile.production] dhaxal = "sii dayn" lto = run
  • Isticmaalka try_reserve ee noocyada Vec, String, HashMap, HashSet iyo VecDeque waa la xasiliyay, kaas oo kuu ogolaanaya inaad hore u sii haysato meel bannaan oo tiro cayiman oo nooc ah oo nooc ah si loo yareeyo inta jeer ee hawlaha qoondaynta xusuusta oo aad ka fogaato shilalka inta lagu jiro shaqada sababtoo ah xusuusta la'aanta.
  • Waa la oggol yahay in lagu qeexo makros-ka-laab-laaban ee tibaaxaha sida "m!{ .. }. Habka()" iyo "m!{ .. }?".
  • Fulinta Faylka :: akhri_to_dhamaadka iyo akhrinta_to_string hawlaha waa la hagaajiyay.
  • Taageerada qeexitaanka Unicode ayaa la cusboonaysiiyay nooca 14.0.
  • Waxaa la balaariyay tirada shaqooyinka lagu calaamadeeyay "#[must_use]" si loo soo saaro digniin haddii qiimaha soo celinta la iska indhatiro, taas oo gacan ka geysaneysa in la aqoonsado khaladaadka ay sababto in shaqada ay bedeli doonto qiyamka halkii ay soo celin lahayd qiime cusub.
  • Kudaray dhabarka dambe ee tijaabada ah ee jiilka koodka iyadoo la adeegsanayo libgccjit.
  • Qayb cusub oo API ah ayaa loo raray qaybta xasiloon, oo ay ku jiraan hababka iyo hirgelinta sifooyinka la dajiyay:
    • [T; N] :: as_mut_slice
    • [T; N] :: sida_slice
    • ururinta::isku dayReserveError
    • HashMap::isku day_reserve
    • HashSet::isku day_reserve
    • Xarig::isku day_reserve
    • Xarig ::isku day_reserve_sax
    • Vec::isku day_reserve
    • Vec::isku day_reserve_sax
    • VecDeque :: isku day_reserve
    • VecDeque::isku day_reserve_exact
    • Iterator:: khariidad_inta
    • iter:: MapInta
    • proc_macro :: waa_la heli karaa
    • Taliska::hel_barnaamijka
    • Taliska::hel_args
    • Taliska::hel_envs
    • Amarka::hel_current_dir
    • CommandArgs
    • CommandEnvs
  • Sifada "const", taas oo go'aamisa suurtagalnimada in loo isticmaalo xaalad kasta oo aan joogto ahayn, ayaa loo adeegsadaa tilmaamta shaqada :: aan la gaadhi karin_aan la hubin.
  • Heerka saddexaad ee taageerada ayaa loo hirgeliyay armv6k-nintendo-3ds, armv7-unknown-linux-uclibceabihf, m68k-unknown-linux-gnu, aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-eabi iyo armv7a-kmc- dhufto_asp3-eabihf. Heerka saddexaad wuxuu ku lug leeyahay taageerada aasaasiga ah, laakiin aan lahayn tijaabo toos ah, daabacaadda dhismooyinka rasmiga ah, iyo xaqiijinta dhisidda koodka.

Source: opennet.ru

Add a comment