Ho lokolloa ha puo ea lenaneo la Rust 1.78 ka kakaretso, e thehiloeng ke morero oa Mozilla, empa hona joale e ntlafalitsoeng ka tlas'a ts'ebetso ea mokhatlo o ikemetseng o sa etseng phaello oa Rust Foundation, e hatisitsoe. Puo e shebana le ts'ireletso ea mohopolo 'me e fana ka mekhoa ea ho finyella mosebetsi o phahameng oa ho ts'oara mosebetsi ha o ntse o qoba ho sebelisoa ha moqoqo oa lithōle le nako ea ho sebetsa (nako ea ho sebetsa e fokotsehile ho qala ho qala le ho boloka laebrari e tloaelehileng).
Mekhoa ea ho sebetsana le memori ea Rust e boloka moqapi ho tsoa liphosong ha a laola lintlha le ho sireletsa khahlanong le mathata a hlahang ka lebaka la ho tšoara memori ea boemo bo tlaase, joalo ka ho fumana sebaka sa memori ka mor'a hore e lokolloe, ho tlosa li-null pointer, buffer overruns, joalo-joalo. Ho aba lilaebrari, ho fana ka meaho le ho laola litšepe, projeke e nts'etsapele mookameli oa thepa ea Cargo. Sebaka sa polokelo ea crates.io se tšehetsoa bakeng sa lilaebrari tse amohelang batho.
Tšireletseho ea memori e fanoa ka Rust ka nako ea ho bokella ka ho hlahloba litšupiso, ho boloka tlaleho ea botho ba ntho, ho boloka tlaleho ea bophelo ba ntho (scopes), le ho lekola ho nepahala ha phihlello ea mohopolo nakong ea ts'ebetso ea khoutu. Rust e boetse e fana ka ts'ireletso khahlano le phallo e felletseng, e hloka ho qalisoa ha boleng bo fapaneng pele e sebelisoa, e sebetsana le liphoso hamolemo laebraring e tloaelehileng, e sebelisa mohopolo oa litšupiso tse ke keng tsa fetoha le mefuta e fapaneng ka mokhoa o ikhethileng, e fana ka ho thaepa ho tiileng ho fokotsa liphoso tse utloahalang.
Litlhahiso tse ka sehloohong:
- Sebaka se secha sa mabitso "#[diagnostic]" se hlahisitsoe, se fana ka mokhoa oa ho susumetsa melaetsa ea liphoso e hlahisoang ke moqapi. Ea pele sebakeng se secha ke tšobotsi ea "#[diagnostic::on_unimplemented]", e ka sebelisoang ho etsa melaetsa ea liphoso e lahleloang maemong ao ho ona o hlokang ho sebelisa tšobotsi e sa kengoang ts'ebetsong bakeng sa mofuta. #[diagnostic::on_unimplemented( molaetsa = "Molaetsa oaka bakeng sa `ImportantTrait <{A}>` ha o e-s'o kenngoe `{Self}`", label = "My Label", note = "Note 1", note = "Tlhokomeliso 2" )] tšobotsi ImportantTrait {} fn use_my_trait(_: impl ImportantTrait ) {} fn main() {use_my_trait(String::new()); } phoso[E32]: Molaetsa oa ka bakeng sa `ImportantTrait ` ha e kenngwe tshebetsong bakeng sa `String` —> src/main.rs:0277:32 | 12 | use_my_trait(String::new()); | ———— ^^^^^^^^^^^^^^^ Leibole Laka | | | e hlokoang ke moeli o hlahisoang ke mohala ona | = thuso: tšobotsi `ImportantTrait `Ha e sebelisoe bakeng sa `String` = note: Note 18 = note: Note 12
- Litlhahlobo tsa pele-pele tse sebelisoang mesebetsing e sa bolokehang joale li ka chechisoa ho fihlela tlhahiso ea khoutu, e lumella licheke tsena hore li etsoe ntle le tlhoko ea ho aha laeborari e tloaelehileng ka mokhoa oa "#[cfg(debug_assertions)]". Ho qala licheke, joale ho lekane ho lumella lipolelo tsa debug bakeng sa liteko kapa ho lokisa liphoso tsa khoutu ea hau.
- Boitšoaro ba mesebetsi ea laeborari e tloaelehileng e amang tatellano ea lisupa le lilae e se e lebelloa ka nako ea ts'ebetso mme e ipapisitse le lintlha tse kentsoeng. Sesupo sa tšebetso::align_offset, se balang ho fokotsa sesupo ho hokahanya pointer, joale se khutlisa ts'ebeliso::MAX ha feela ts'ebetso e hloleha. Selae sa tšebetso::align_to and slice::align_to_mut both, se fetolang lilae hore e be setšoantšo se nang le selae se mahareng se lohiloeng le lilae tsa mantlha tsa ho qala le ho qetela, joale kamehla li khutlisa karolo e kholo e bohareng.
- Tse latelang li fetiselitsoe sehlopheng se tsitsitseng:
- impl Bala bakeng sa &Stdin
- Lumella ts'ebeliso ea nako e sa fetoheng (e sa tsitsang) bakeng sa std::phoso e itseng::Kemiso e amanang le liphoso.
- Ho kenya ts'ebetsong ?Boleng ba boholo bo lumelletsoe.
- impl Ho tloha bakeng sa io::Phoso
- The Barrier::new() ts'ebetso e tsitsitsoe hore e sebelisoe le sebopeho sa "consst" maemong afe kapa afe ho fapana le li-constants.
- Bakeng sa li-platform tsa sepheo sa x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm le i686-pc-windows-gnu hona joale e hloka bonyane Windows 10 mofuta.
- Boemo ba boraro ba tšehetso bo kentsoe tšebetsong bakeng sa li-platform tsa wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf le loongarch64-tse sa tsejoeng-linux-musl. Boemo ba boraro bo kenyelletsa ts'ehetso ea mantlha, empa ntle le tlhahlobo ea boiketsetso, meaho ea semmuso ea phatlalatso, kapa ho hlahloba hore na khoutu e ka hahuoa.
- Boemo ba bobeli ba ts'ehetso bakeng sa sethala se reriloeng Eketsa wasm32-wasip1 se kentsoe tšebetsong. Boemo ba bobeli ba tšehetso bo kenyelletsa tiiso ea kopano.
- Sethala sa wasm32-wasi-preview1-threads se rehiloe lebitso la wasm32-wasip1-threads.
- Moqapi o fetotsoe ho sebelisa LLVM 18. Ha o sebelisa LLVM 18 bakeng sa meralo ea x86-32 le x86-64, ABI e amanang le mefuta ea u128 le i128 e fetotsoe.
- Ho molaoli oa Cargo pact, mofuta oa 4 oa lifaele tsa senotlolo (lockfile v4) o tsitsitse.
- Cargo e na le cache e tsitsitseng ea lefats'e e nang le tlhahisoleseling mabapi le ts'ebeliso ea morao-rao ea data. Cache e sebelisoa ho $CARGO_HOME/.global-cache e sebelisa SQLite 'me e nchafatsoa ka bo eona ho bonahatsa liphetoho tsa morao-rao tsa index, crate file, code directory, git clone, le git checkout.
Ho phaella moo, puo ea lenaneo la Borgo e leka ho hlahisa maikutlo ho feta puo ea Go, empa e sa rarahane ho feta puo ea Rust. Borgo e kopanya likarolo tse ntle ka ho fetisisa tsa Go le Rust, ho etsa mefokolo ea puo ka 'ngoe. Mohlala, Go e bonolo ebile e hlakile, empa ha e fane ka likarolo tse tsoetseng pele tsa polokeho. Puo ea Rust e fana ka lisebelisoa bakeng sa mananeo a sireletsehileng, empa e rarahane ho feta tekano. Morero o ntse o ntlafatsoa ke Marco Sampellegrini, sengoli sa The Simple Haskell Handbook le moqapi oa sistimi e tsoelang pele ea ho kopanya ea Quad CI.

Borgo e sebelisa ho ngola ka mokhoa o tsitsitseng, mefuta e kang Go-like, le syntax e kang Rust. Li-semicolons ke tsa boikhethelo qetellong ea mela ea khoutu ea Borgo. Khoutu ea Borgo e hlophisitsoe e le setšoantšo sa Go se lumellanang ka botlalo le liphutheloana tse teng tsa Go. Khoutu ea compiler e ngotsoe ka Rust 'me e tsamaisoa tlas'a laesense ea ISC. sebelisa fmt enum NetworkState {Loading, Failed(int), Success(T), } struct Response { title: string, duration: int, } fn main () { let res = Response { title: "Hello world", nako: 0, } let state = NetworkState.Katleho(res) let msg = match state {NetworkState.Loading => “e ntse e sebetsa”, NetworkState.Failed(code) => fmt.Sprintf(“Ke fumane khoutu ya phoso: %d”, khoutu), NetworkState.Success (res) => res.title, } fmt.Println(msg) }
Source: opennet.ru
