Rust 1.78 ayaa la sii daayay. Luuqadda Borgo ee isku-darta awoodaha Go iyo Rust

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

  • Meel cusub oo magaceed "#[diagnostic]" ayaa la soo jeediyay, taasoo bixisa hab lagu saameeyo farriimaha khaladka ah ee uu soo saaray isu-duwaha. Midda ugu horreysa ee booska cusub waa sifada "#[diagnostic :: on_unimplemented]", taas oo loo isticmaali karo in lagu habeeyo farriimaha khaladka ah ee lagu soo tuuray xaalad aad u baahan tahay inaad isticmaasho sifo aan loo hirgelin nooca. #[diagnostic ::on_unimplemented( fariinta = "Fariintayda 'Trait Muhiimka ah<{A}>` looma fuliyo `{Nafta}`, label = "My Label", note = "Xusuusin 1", note = "Xusuusin 2")] sifada Muhiimka ah {} fn use_my_trait(_: impl ImportantTrait ) {} fn main() {isticmaal_my_trait(String::cusub()); } qalad[E32]: Fariintayda loogu talagalay 'Muhiimnimada 'looma hirgelin 'String' —> src/main.rs:0277:32 | 12 | adeegso_my_trait ( Xarig :: cusub ()); | ———— ^^^^^^^^^^^ Summadayda | | | looga baahan yahay xuduud uu soo bandhigay wackan | = caawimo: sifada `Trait Muhiimka ah 'looma hirgelin 'String' = note: note 18 = note: note 12
  • Jeegaga caddaynta ee lagu dabaqo hawlaha aan badbaadada lahayn hadda dib ayaa loo dhigi karaa ilaa soo saarista koodka, taasoo u oggolaanaysa in jeegaggu la sameeyo iyada oo aan loo baahnayn in la dhiso maktabadda caadiga ah "#[cfg(debug_assertions)]" mode. Si aad u kiciso jeegaga, hadda way ku filan tahay inaad awood u siiso caddaynta khaladka si loo tijaabiyo ama loo cirib tiro koodkaaga.
  • Habdhaqanka shaqooyinka maktabadda caadiga ah ee saameeya toosinta tilmaamayaasha iyo jeexjeexyada hadda waa la saadaalin karaa wakhtiga runtime waxayna kuxirantahay xogta wax gelinta. Tilmaamaha shaqada :: align_offset, kaas oo xisaabiya offset si uu u waafajiyo tilmaamayaasha, hadda waxay soo celisaa isticmaalka :: MAX kaliya haddii hawlgalku guuldareysto. Hawluhu waxay jarjaraan :: align_to iyo jeex :: align_to_mut labadaba, kuwaas oo u beddela jeexjeexyo matalaad leh jeex dhexe oo toosan iyo jeexjeexyada bilowga iyo dhammaadka asalka ah, had iyo jeer soo celi qaybta dhexe ee ugu weyn.
  • Kuwa soo socda ayaa loo wareejiyay qaybta xasilloon:
    • impl U akhri &Stdin
    • Oggolow isticmaalka nolol aan joogto ahayn (aan-joog ahayn) nolosha qaar ka mid ah std :: khalad :: hirgelinta khaladka la xidhiidha.
    • Impl fulinta loo ogolyahay isticmaalka ?Qiimaha cabbirka.
    • impl Ka io :: Khalad
  • Shaqada xannibaadda :: cusub () waa la dejiyay si loogu isticmaalo sifada "const" xaalad kasta oo aan joogto ahayn.
  • Goobaha bartilmaameedka x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm iyo i686-pc-windows-gnullvm hadda waxay u baahan tahay ugu yaraan Windows 10 version.
  • Heerka saddexaad ee taageerada waxa loo hirgeliyay wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf iyo loongarch64-unknown-linux-musl platforms. 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 goobta la beegsanayo Add wasm32-wasip1 waa la hirgeliyay. Heerka labaad ee taageerada waxa ku jira dammaanad qaadka shirka.
  • Goobta wasm32-wasi-preview1-threads ayaa loo bedelay wasm32-wasip1-threads.
  • Isku-duwaha ayaa loo beddelay inuu isticmaalo LLVM 18. Markaad isticmaalayso LLVM 18 ee x86-32 iyo x86-64 naqshadaha, ABI ee la xidhiidha noocyada u128 iyo i128 waa la beddelay.
  • Maamulaha heshiiska xamuulka, nooca 4 ee faylasha qufulka (lockfile v4) waa la dajiyay.
  • Cargo waxay leedahay kayd caalami ah oo xasilan oo leh macluumaad ku saabsan isticmaalkii ugu dambeeyay. Kaydka waxaa lagu marti galiyay $CARGO_HOME/.global-cache iyadoo la adeegsanayo SQLite waxaana si toos ah loo cusboonaysiiyaa si ay u muujiso isbeddeladii ugu dambeeyay ee tusmada, faylka crate, koodka koodka, git clone, iyo jeeg git.

Intaa waxaa dheer, luqadda borogaraamka Borgo waxay isku daydaa inay ka muujiso luqadda Go, laakiin ka adag luqadda Rustka. Borgo wuxuu isku daraa sifooyinka ugu fiican ee Go iyo Rust, taasoo ka dhigaysa cilladaha luqad kasta. Tusaale ahaan, Go waa sahlan tahay oo toosan, laakiin ma bixiso noocyada badbaadada nooca horumarsan. Luqadda Rustku waxay bixisaa agabka barnaamijka badbaadada leh, laakiin waa mid aad u adag. Mashruuca waxaa soo saaray Marco Sampellegrini, oo ah qoraaga Buug-gacmeedka The Simple Haskell Handbook iyo horumariyaha nidaamka isdhexgalka joogtada ah ee Quad CI.

Rust 1.78 ayaa la sii daayay. Luuqadda Borgo ee isku-darta awoodaha Go iyo Rust

Borgo waxa ay isticmaashaa qorida static, noocyada Go-like, iyo syntax u eg miridhku. Semicolons waa ikhtiyaari dhamaadka xariiqda Borgo code. Koodhka Borgo waxa lagu soo ururiyey matalaad Go kaas oo si buuxda ula jaan qaadaya xidhmooyinka Go ee jira. Koodhka isku-dubaridku wuxuu ku qoran yahay Rust waxaana lagu qaybiyaa shatiga ISC. Isticmaal fmt enum NetworkState {Loading, Failed(int), Success(T),} Jawaabta qaabdhismeedka { title: string, duration: int, } fn main() {let res = Jawaabta {ciwaanka: "Hello world", duration: 0, } ha sheegto = NetworkState.Success(res) let msg = gobolka u dhigma { NetworkState.Loading => "Weli loading", NetworkState.Failed(code) => fmt.Sprintf("Got error code: %d", code), NetworkState.Guusha (res) => ciwaan, } fmt.Println(msg) }

Source: opennet.ru

Add a comment