Ukukhishwa kushicilelwe Ukugqwala 1.96.0 — inguqulo yakamuva ezinzile yolimi lokuhlela lwe-Rust. Isibuyekezo sikhishwe. I-28 Kungenzeka iminyaka engu-2026; ingafakwa kusetshenziswa umyalo ojwayelekile we-rustup update stable. Izinguquko eziyinhloko zifaka phakathi izinhlobo ezintsha zebanga ku-core::range, ukuzinza kwama-macro afanayo ephethini, ukuqina kokuziphatha kokwakha kwe-WebAssembly, kanye nokulungiswa kobuthakathaka obubili ku-Cargo.
Izinguquko ezinkulu
Izinhlobo ezintsha zebanga i-core::range::Range*.
Izinhlobo ezintsha zebanga zizinzile kulabhulali ejwayelekile: core::range::Range, RangeFrom, RangeInclusive, kanye nama-iterators ahlobene nawo. Ngokungafani nezinhlobo ezindala ezivela ku-core::ops, amabanga amasha awasebenzisi i-Iterator ngqo, kodwa aguqulwa abe yi-iterator nge-IntoIterator. Lokhu kuvumela la mabanga ukuthi abe yi-Copyable, okuyinto elula, isibonelo, lapho kugcinwa ububanzi njengensimu yesakhiwo. I-Syntax efana ne-0..1 okwamanje idala izinhlobo zebanga ezindala, kodwa kuhlelwe ukuthi ithuthelwe ezinhlotsheni ezintsha enguqulweni yesikhathi esizayo yolimi.Kungezwe i-assert_matches! kanye ne-debug_assert_matches!.
Ama-macro amasha akuvumela ukuthi uhlole ukuthi inani lifana nephethini enikeziwe. Lokhu kufana nomqondo we-assert!(matches!(…)), kodwa uma kwenzeka iphutha, ukumelwa kokulungisa iphutha kwenani kuyaphrintwa, okwenza kube lula ukuxilongwa. Lawa ma-macro awazange angezwe ku-Prelude ukugwema ukungqubuzana nama-crate athandwayo eqembu lesithathu, ngakho-ke kumele angeniswe ngokuqondile kusuka ku-core noma ku-std.Kushintshe ukuziphatha kwezinhloso ze-WebAssembly.
I-Rust ayisadluli ku--allow-undefined kusixhumanisi se-WebAssembly builds. Izimpawu ezingachazwanga manje ziphathwa njengamaphutha ngesikhathi sokuxhumanisa, kunokuba ziguqulwe ngokuzenzakalelayo zibe yi-imports kusuka kumojula "we-env". Lokhu kufanele kubambe amaphutha okwakha kanye namagama ezimpawu angavumelekile ngaphambilini. Ukuziphatha okudala kungabuyiselwa, uma kudingeka, kusetshenziswa i-RUSTFLAGS=-Clink-arg=--allow-undefined noma ngokucacisa ngokucacile imojula ye-wasm engenisiwe kusetshenziswa i-#[link(wasm_import_module = "env")].I-Cargo ithole ukulungiswa kwezokuphepha.
Izinguquko olimini.
Ukukhishwa kuhlanganisa: Ukulungiswa okuncane okuningana kanye nokuthuthukiswa: Kuvunyelwe ukudlulisa ama-metavariable e-expr ama-macros ku-cfg, kulungiswe ukusatshalaliswa kwe-never-type kuma-tuple expressions, kulungiswe amacala angavamile amacebo okuqondiswa kohlobo olungalungile kuma-agumenti omsebenzi, kungezwe ukwesekwa kwama-registers e-vector e-s390x ku-inline assembly, futhi kuvunyelwe kabusha ama-ManuallyDrop constants njengama-templates—lokhu kulungisa ukuhlehla okufakwe ku-Rust 1.94.0.Izinguquko ku-compiler kanye namapulatifomu.
Ukuze LinuxUkusekelwa kokuphumula kwesixhumanisi kunikwe amandla kuma-targets e-LoongArch—ukulungiswa kokuxhumanisa okwenza kube lula ukushintshana kanye namakholi ngemva kokufakwa kwekhodi. Ku-riscv64gc-unknown-fuchsia, ukucushwa kwesisekelo kubuyekezwe kuphrofayela ye-RVA22 ngokusekelwa kwezandiso ze-vector.Izibuyekezo ezijwayelekile zomtapo wolwazi.
Ukusekelwa kokuphindaphinda ngaphezu kwamazinga e-NonZero integer kuye kwanezelwa. Ukuphathwa ngobuvila kwamakheli e-host ku-SGX nge-ToSocketAddr nakho kulungisiwe, futhi incazelo yememori "efundekayo/ebhalekayo" icacisiwe kumadokhumenti kanye nezinkontileka zangaphakathi: i-null pointer isusiwe encazelweni evamile, futhi okuhlukile manje sekuchazwe ngokwehlukile ngezindlela ezithile.Ama-API Azinzile.
Phakathi kwezixhumi ezizinzile kukhona i-assert_matches!, debug_assert_matches!, implementations ye-From ye-AssertUnwindSafe , I-LazyCell kanye neLazyLock , kanye nezinhlobo ezintsha zebanga kanye nama-iterators avela ku-core::range, kufaka phakathi i-Range, i-RangeFrom, i-RangeToInclusive kanye nama-iterators awo.Impahla: Izinguquko ekuncikeni kanye namadokhumenti.
Ukuthembela manje kungacacisa kokubili indawo yokugcina i-Git kanye nerejista ehlukile: inguqulo ye-Git izosetshenziswa endaweni, futhi inguqulo yerejista izosetshenziswa ngesikhathi sokushicilela, okufana nokuziphatha nge-crates.io. Ukusekelwa kwe-target.'cfg(..)'.rustdocflags ekucushweni kwe-Cargo nakho kungeziwe.I-Rustdoc manje isingatha amadokhumenti ngokunembe kakhudlwana.
Amanothi e-API angasasebenzi manje asevezwa njengamadokhumenti avamile, ngaphandle kokucutshungulwa okukhethekile kwangaphambilini nge-white-space: pre-wrap. Ngaphezu kwalokho, i-rustdoc ayisabonisi ama-missing_doc_code_examples ezinto ezingaphakathi kwe-impl, futhi izindlela nemisebenzi ehlobene manje sezihlukaniswe kubha eseceleni yamadokhumenti.Ukungalingani okungenzeka.
Ukukhishwa kuqukethe izinguquko eziningana ezingase zivele kukhodi engeyona ejwayelekile: ukwakheka kwamanye ama-enum angu-#[repr(Int)] kulungisiwe ezimweni ezimbi kakhulu, futhi amanye ama-cast angenamsebenzi e-unsize ku-Pin akhutshaziwe. , Ukwakhiwa kwe-WebAssembly manje kuyawa ezimpawini ezingachazwanga, isici esizinzile ngengozi esithi #![reexport_test_harness_main] siphinde savalwa, inketho ethi -Csoft-float isusiwe, futhi inguqulo ye-LLVM yangaphandle encane inyusiwe yaba ngu-21. Ku-AVR, uhlobo lwe-c_double lushintshiwe lwaba yi-f32, njengoba ama-C doubles angama-32-bit ngokuzenzakalelayo kulezi zinhloso.
Source: linux.org.ru
