Siideynta luuqadda barnaamijka Rust 1.74. Hantidhawrka RustVMM. Dib ugu qorida Binder ee miridhku

Siideynta Rust 1.74 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:

  • Waxaa lagu daray awoodda lagu habeeyo jeegaga lint iyada oo loo sii marayo feylka Cargo.toml oo wata bayaanka maamulaha xirmada. Si loo qeexo goobaha lint, sida heerka jawaabta (mamnuuc, diido, u dig, oggolow), qaybo cusub "[lints]" iyo "[workspace.lints]" ayaa la soo jeediyay, isbeddelada kuwaas oo la tixgeliyo marka la samaynayo go'aan ku saabsan. dib u dhis Tusaale ahaan, halkii aad ka sheegi lahayd "-F", "-D", "-W" iyo "-A" marka la ururinayo ama lagu darayo "#![forbid(unsafe_code)]" iyo "#! :" sifada koodka) :enum_glob_use)]" hadda waxa lagu isticmaali karaa Cargo manifestka: [lints.rust] unsafe_code = "mamnuuc" [lints.clippy] enum_glob_use = "deny"
  • Maareeyaha xirmada Crate ayaa ku daray awoodda lagu xaqiijinayo marka lagu xirayo kaydka. Xirmada aasaasiga ah waxaa ka mid ah taageerada gelinta cabbirrada xaqiijinta ee dukaamada aqoonsiga Linux (oo ku saleysan libsecret), macOS (Keychain) iyo Windows (Maareeyaha Aqoonsiga Windows), laakiin nidaamka ayaa markii hore loo sameeyay qaab qaabaysan wuxuuna kuu oggolaanayaa inaad la shaqeyso bixiyeyaasha kala duwan ee kaydinta iyo abuurista calaamado, tusaale ahaan, plugin ayaa loo diyaariyey isticmaalka maamulaha sirta ah ee 1Password. Xaqiijinta waxaa laga yaabaa in ay u baahato kaydka hawl kasta, ma aha oo kaliya in la xaqiijiyo in baakooyinka la daabacay. ~/.cargo/config.toml [registry] global-credential-providers = ["cargo:token", "cargo:libsecret"]
  • Taageerada saadaalinta nooca soo noqoshada (impl_trait_projections) waa la xasiliyay, taasoo u oggolaanaysa Self iyo T :: Assoc in lagu xuso noocyada soo celinta sida "async fn" iyo "-> impl Trait". Duubista qaabdhismeedka<'a, T>(&'a T); // Noocyada soo celinta aan muuqan ee xusaya 'Nafta': impl Wrapper<'_, ()> { async fn async_fn () -> Self { /* … */ } fn impl_trait () -> impl Iterator { /* … */ } } Sifada sifo<'a> {nooca Assoc; fn cusub () -> Nafta :: Assoc; } impl Trait<'_> loogu talagalay () {nooca Assoc = (); fn new() {}} // Noocyada soo celinta mugdiga ah ee sheegaya nooca la xidhiidha: impl<'a, T: Trait<'a>> Duubista<'a, T> { async fn mk_assoc() -> T :: Assoc {/* … */ } fn a_few_assocs() -> impl Iterator { /* … */} }
  • Qayb cusub oo API ah ayaa loo raray qaybta xasiloon, oo ay ku jiraan hababka iyo hirgelinta sifooyinka la dajiyay:
  • Sifada "const", taas oo go'aamisa suurtagalnimada in loo isticmaalo xaalad kasta oo aan joogto ahayn, ayaa loo adeegsadaa hawlaha:
    • xudunta :: mem:: nuqul ka mid ah
    • str :: waa_ascii
    • [u8]:: waa_ascii
    • xudunta:: tirada::
    • impl Laga soo bilaabo std :: habka :: Studio
    • impl Laga soo bilaabo std :: habka :: Studio
    • impl Laga soo bilaabo std :: habka :: Ilmaha {Stdin, Stdout, Stderr}
    • impl Laga soo bilaabo std :: habka :: Ilmaha {Stdin, Stdout, Stderr}
    • std :: ffi :: OsString :: ka_encoded_bytes_aan la hubin
    • std :: ffi :: OsString :: galay_encoded_bytes
    • std :: ffi :: OsStr :: ka_encoded_bytes_aan la hubin
    • std :: ffi :: OsStr :: sida_encoded_bytes
    • std :: io :: Khalad :: mid kale
    • impl TryFrom u16
    • impl Ka yimid<&[T; N]> ee Vec
    • impl Laga soo bilaabo<&mut [T; N]> ee Vec
    • impl Laga soo bilaabo<[T; N]> ee Arc<[T]>
    • impl Laga soo bilaabo<[T; N]> ee Rc<[T]>
  • Isku-duwaha, qalabka, maktabadda caadiga ah, iyo codsiyada la soo saaray ayaa kordhay shuruudaha aaladaha Apple, hadda waxay u baahan yihiin ugu yaraan macOS 10.12 Sierra, iOS 10, iyo tvOS 10 oo la sii daayay 2016 si ay u shaqeeyaan.
  • Heerka saddexaad ee taageerada ayaa loo hirgeliyay i686-pc-windows-gnullvm platform. 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.
  • Heerka labaad ee taageerada loongarch64-aan la garanayn madal la beegsanayo lama hirgelin. Heerka labaad ee taageerada waxa ku jira dammaanad qaadka shirka.

Intaa waxaa dheer, laba dhacdo oo la xidhiidha luqadda Rust waa la xusi karaa:

  • OSTIF (Sanduuqa Horumarinta Tiknoolajiyada Furan ee Furan), oo loo sameeyay si loo xoojiyo amniga mashaariicda isha furan, ayaa daabacday natiijooyinka xisaabinta mashruuca RustVMM, kaas oo bixiya qaybo loogu talagalay abuurista hypervisors-shaqo gaar ah iyo kormeerayaasha mashiinka farsamada (VMMs). Shirkado ay ka mid yihiin Intel, Alibaba, Amazon, Google, Linaro iyo Koofiyada Cas ayaa ka qayb qaadanaya horumarinta mashruuca. Intel Cloud Hypervisor iyo Dragonball hypervisors ayaa la soo saaray iyadoo lagu salaynayo RustVMM. Hantidhawrku wuxuu xaqiijiyay tayada sare ee saldhiga koodhka iyo adeegsiga farsamooyinka qaab dhismeedka iyo hirgalinta looga golleeyahay in lagu gaadho amniga ugu sarreeya. Intii lagu guda jiray hanti-dhawrka, 6 dhibaato ayaa la ogaaday oo aan saameyn toos ah ku yeelan badbaadada.
  • Google waxa ay soo bandhigtay hirgalinta cusub ee habka isgaadhsiinta habka isgaadhsiinta ee Binder, oo dib loogu qoray luqadda Rust, liiska soo-saareyaasha kernel-ka Linux. Dib-u-shaqaynta ayaa la fuliyay iyada oo qayb ka ah mashruuc lagu xoojinayo amniga, kor loogu qaadayo farsamooyinka barnaamijka ee sugan iyo kordhinta waxtarka aqoonsiga dhibaatooyinka marka lagu shaqeynayo xusuusta Android (qiyaastii 70% dhammaan dayacanka halista ah ee lagu aqoonsaday Android waxaa sababa khaladaadka marka la shaqeynayo xusuusta. ). Hirgelinta Binder in Rust waxay ku guulaysatey sinnaanta shaqeynta nooca asalka ah ee luqadda C, waxay gudbisaa dhammaan imtixaanada AOSP (Android Open-Source Project) waxaana loo isticmaali karaa in lagu abuuro daabacado shaqo oo firmware ah. Waxqabadka labada fulinba waa isku heer (kala leexashada -1.96% iyo +1.38%).

Source: opennet.ru

Add a comment