Rust 1.66 Siidaynta Luuqada Barnaamijaynta

Siideynta Rust 1.66 luqadda barnaamijka guud ee ujeeddooyinka, oo uu aasaasay mashruuca Mozilla, laakiin hadda lagu horumariyay hoosta hay'adda madax-bannaan ee aan faa'iido doonka ahayn ee Rust Foundation, ayaa la daabacay. Luqadda waxay diiradda saartaa badbaadada xusuusta waxayna bixisaa siyaabaha lagu gaaro isbarbardhigga shaqada sare iyadoo laga fogaanayo isticmaalka qashinka aruuriyaha iyo wakhtiga runtime (waqtiga runtime wuxuu hoos u dhigayaa bilowga aasaasiga ah iyo dayactirka maktabadda caadiga ah).

Hababka wax ka qabashada xusuusta daxalku waxay horumariyaha ka badbaadiyaan khaladaadka marka la maamulayo tilmaamayaasha oo ay ka ilaaliyaan dhibaatooyinka ka dhasha maaraynta xusuusta heerka hoose ah, sida gelitaanka aagga xusuusta ka dib marka la sii daayo, leexinta tilmaameyaal aan waxba lahayn, dulin xad dhaaf ah, iwm. Si loo qaybiyo maktabadaha, loo bixiyo dhismayaal loona maareeyo ku-tiirsanaanta, mashruucu wuxuu horumariyaa maareeyaha xirmada xamuulka. Kaydka crates.io waxaa lagu taageeraa martigelinta maktabadaha.

Badbaadada xusuusta waxa lagu bixiyaa miridhku wakhtiga la ururinayo iyada oo la eegayo tixraaca, la socodka lahaanshaha shayga, la socodka cimriga shayga (koobyada), iyo qiimaynta saxnaanta gelitaanka xusuusta inta lagu jiro fulinta koodka. Daxalku sidoo kale wuxuu bixiyaa difaac ka dhan ah qulqulka isugeynta, wuxuu u baahan yahay bilawga qasabka ah ee qiyamka doorsooma ka hor intaan la isticmaalin, wuxuu si fiican u maareeyaa khaladaadka maktabadda caadiga ah, wuxuu dabaqaa fikradda tixraacyada aan bedeli karin iyo doorsoomayaasha si caadi ah, wuxuu bixiyaa qorid adag oo adag si loo yareeyo khaladaadka macquulka ah.

Hal-abuurka ugu muhiimsan:

  • Marka la tiriyo tiro-koobyada isku-darka ("#[repr(Int)]" sifada), tilmaanta cad ee takoorka (lambarka doorashada ee tirinta) waa la oggol yahay, xitaa haddii tirinta ay ka kooban tahay meelo. #[repr(u8)] enum Foo {A(u8), # takoorid 0 B(i8), # takoorid 1 C (bool) = 42, # takoorid 42 }
  • Xudunta lagu daray :: tilmaan :: shaqada black_box, kaas oo si fudud u soo celinaya qiimaha la helay. Sababtoo ah kombuyuutarku wuxuu aaminsan yahay in shaqada la siiyay ay qabato shay gaar ah, shaqada black_box waxaa loo isticmaali karaa in lagu joojiyo hagaajinta kombuyuutarka ee wareegyada marka la samaynayo tijaabada waxqabadka code ama marka la baarayo koodka mashiinka la soo saaray (sidaas darteed kombuyuutarku ma tixgelinayo koodka mid aan la isticmaali karin oo ka saara. waa). Tusaale ahaan, tusaalaha hoose, qeexida black_box (v.as_ptr ()) waxay ka hortagtaa iskudubariduhu inuu u maleeyo in vector v aan la isticmaalin. isticmaal std :: tilmaan :: sanduuqa madow; fn push_cap (v: &mut Vec) { ee i in 0..4 {v.push(i); black_box (v.as_ptr ()); }
  • Maareeyaha xirmada "cargo" wuxuu bixiyaa amarka "saar", kaas oo kuu ogolaanaya inaad ka saarto ku-tiirsanaanta Cargo.toml muujinta khadka taliska.
  • Qayb cusub oo API ah ayaa loo raray qaybta xasiloon, oo ay ku jiraan hababka iyo hirgelinta sifooyinka la dajiyay:
    • proc_macro :: Span :: qoraalka_source
    • u *::{la hubiyay_ku daray_ saxeexay, buux-dhaafay_ku daray_ saxeexay, saturating_ku daray_saxiixday, duubid_ku daray_saxiixday}
    • i *:: {la hubiyay_ku daray_aan saxeexin, qulqulaya_ku-dar_aan saxeexin, saturating_ku daray_aan saxeexin, duubid_ku daray_aan saxeexin}
    • i *:: {la hubiyay_sub_aan saxiixin, buux-dhaafay_sub_aan saxiixin, saturating_sub_aan saxiixin, duubid_sub_aan saxiixin}
    • BTreeSet:: {ka hore, ugu dambeeya, pop_first, pop_last}
    • BTreeMap :: {qiimaha_furaha_guud,qiimihii_ugu dambeeyay_furihii_ugu dambeeyay
    • Ku dar fulinta AsFd noocyada qufulka istdio marka la isticmaalayo WASI.
    • impl TryFrom > loogu talagalay Sanduuqa<[T; N]>
    • xudunta :: tilmaan :: sanduuq_madow
    • Duration::isku day_from_secs_{f32,f64}
    • Ikhtiyaarka:: fur
    • std:: os:: fd
  • Isticmaalka safafka "..X" iyo "..=X" waa la ogol yahay qaab-dhismeedka.
  • Marka la ururiyo hore ee compiler rustc iyo dhabarka dambe ee LLVM, hababka hagaajinta LTO (Link Time Optimization) iyo BOLT (Biinary Optimization and Layout Tool) ayaa la isticmaalaa, kuwaas oo u oggolaanaya kordhinta waxqabadka koodhka natiijada iyo yaraynta isticmaalka xusuusta.
  • Heerka saddexaad ee taageerada ayaa loo hirgeliyay armv5te-none-eabi iyo thumbv5te-none-eabi. Heerka saddexaad waxa uu ku lug leeyahay taageerada aasaasiga ah, laakiin iyada oo aan la helin tijaabo toos ah, daabacaadda dhismo rasmi ah, ama hubinta in koodka la dhisi karo.
  • Taageero lagu daray isku xirka maktabadaha caalamiga ah ee macOS.

Intaa waxaa dheer, waxaan ogaan karnaa ku darida dhamaadka hore ee isuduwaha luuqada Rust (gccrs) ee saldhiga koodka GCC. Dhinaca hore waxa lagu daray laanta GCC 13, taas oo la sii dayn doono May 2023. Laga bilaabo GCC 13, qalabka GCC ee asalka ah waxaa loo isticmaali karaa in lagu ururiyo barnaamijyada luqadda Rust iyada oo aan loo baahnayn in la rakibo compiler rustc, oo la dhisay iyadoo la adeegsanayo horumarinta LLVM. Dhaqangelinta GCC 13 ee Rust waxay noqon doontaa nooca beta, oo aan loo suurtagelin si toos ah.

Source: opennet.ru

Add a comment