Ir-rilaxx ġie ppubblikat Sadid 1.96.0 — l-aħħar verżjoni stabbli tal-lingwa ta' programmar Rust. L-aġġornament ġie rilaxxat. 28 Mejju sena 2026; jista' jiġi installat bl-użu tal-kmand standard rustup update stable. Il-bidliet ewlenin jinkludu tipi ġodda ta' firxa f'core::range, stabilizzazzjoni tal-makros tat-tqabbil tal-mudelli, tisħiħ tal-imġiba tal-bini ta' WebAssembly, u tiswijiet għal żewġ vulnerabbiltajiet f'Cargo.
Bidliet kbar
Tipi ta' firxiet ġodda core::range::Range*.
Tipi ġodda ta' firxiet ġew stabilizzati fil-librerija standard: core::range::Range, RangeFrom, RangeInclusive, u l-iteraturi assoċjati tagħhom. B'differenza mit-tipi qodma minn core::ops, ir-firxiet il-ġodda ma jimplimentawx Iterator direttament, iżda jiġu konvertiti għal iteratur permezz ta' IntoIterator. Dan jippermetti li dawn ir-firxiet ikunu Kkupjabbli, li huwa konvenjenti, pereżempju, meta tinħażen firxa bħala qasam ta' struttura. Sintassi bħal 0..1 bħalissa toħloq it-tipi qodma ta' firxiet, iżda huwa ppjanat li tiġi migrata għat-tipi l-ġodda f'verżjoni futura tal-lingwa.Żidna assert_matches! u debug_assert_matches!.
Makros ġodda jippermettulek tiċċekkja li valur jaqbel ma' mudell partikolari. Dan huwa simili fil-kunċett għal assert!(matches!(…)), iżda f'każ ta' żball, tiġi stampata rappreżentazzjoni ta' debug tal-valur, u b'hekk tissimplifika d-dijanjostika. Dawn il-makros ma ġewx miżjuda ma' Prelude biex jiġu evitati kunflitti ma' crates popolari ta' partijiet terzi, għalhekk iridu jiġu importati espliċitament minn core jew std.Biddel l-imġiba tal-miri tal-WebAssembly.
Rust ma jibqax jgħaddi --allow-undefined lill-linker għall-bini tal-WebAssembly. Simboli mhux definiti issa huma ttrattati bħala żbalji waqt il-linking, minflok ma jiġu konvertiti awtomatikament għal importazzjonijiet mill-modulu "env". Dan għandu jaqbad żbalji fil-bini u ismijiet ta' simboli invalidi aktar kmieni. L-imġiba l-qadima tista' tiġi rriversjata, jekk meħtieġ, bl-użu ta' RUSTFLAGS=-Clink-arg=--allow-undefined jew billi tispeċifika espliċitament il-modulu wasm importat bl-użu ta' #[link(wasm_import_module = "env")].Il-merkanzija rċeviet tiswijiet ta' sigurtà.
Tibdil fil-lingwa.
Ir-rilaxx jinkludi: Diversi tiswijiet u titjibiet minuri: Ippermettew li l-metavarjabbli expr tal-makros jgħaddu lil cfg, ikkoreġew it-tfigħ tat-tip qatt ma sar f'espressjonijiet ta' tupla, irranġaw każijiet rari ta' ħjiel mhux korretti ta' inferenza tat-tip għal argumenti ta' funzjoni, żiedu l-appoġġ għar-reġistri vettorjali s390x f'assemblaġġ inline, u ppermettew mill-ġdid il-kostanti ta' ManuallyDrop bħala mudelli—dan jirranġa rigressjoni introdotta f'Rust 1.94.0.Tibdil fil-kumpilatur u l-pjattaformi.
Għal LinuxL-appoġġ għar-rilaxxament tal-links ġie attivat għall-miri ta' LoongArch—ottimizzazzjoni tal-linking li tissimplifika xi tranżizzjonijiet u sejħiet wara l-iskjerament tal-kodiċi. Għal riscv64gc-unknown-fuchsia, il-konfigurazzjoni bażi ġiet aġġornata għall-profil RVA22 b'appoġġ għal estensjonijiet vettorjali.Aġġornamenti standard tal-librerija.
Ġie miżjud l-appoġġ għall-iterazzjoni fuq firxiet ta' numri sħaħ NonZero. L-immaniġġjar għażżien tal-indirizzi tal-host f'SGX permezz ta' ToSocketAddr ġie rranġat ukoll, u d-definizzjoni ta' memorja "li tinqara/tinkiteb" ġiet iċċarata fid-dokumentazzjoni u l-kuntratti interni: il-pointer null tneħħa mid-definizzjoni ġenerali, u l-eċċezzjonijiet issa huma speċifikati separatament għal metodi speċifiċi.APIs stabbilizzati.
Fost l-interfaċċji stabbilizzati hemm assert_matches!, debug_assert_matches!, implementazzjonijiet ta' From għal AssertUnwindSafe , Ċellula Għażżiena u LazyLock , kif ukoll tipi ġodda ta' firxiet u iteraturi minn core::range, inklużi Range, RangeFrom, RangeToInclusive u l-iteraturi tagħhom.Merkanzija: Tibdil fid-dipendenzi u d-dokumentazzjoni.
Dipendenza issa tista' tispeċifika kemm repożitorju Git kif ukoll reġistru alternattiv: il-verżjoni Git se tintuża lokalment, u l-verżjoni target se tintuża waqt il-pubblikazzjoni, simili għall-imġiba ma' crates.io. Ġie miżjud ukoll appoġġ għal target.'cfg(..)'.rustdocflags fil-konfigurazzjoni tal-Cargo.Rustdoc issa jittratta d-dokumentazzjoni b'mod aktar preċiż.
Noti tal-API li ma kinux qed jiġu aċċettati issa qed jiġu ppreżentati bħala dokumentazzjoni regolari, mingħajr l-ipproċessar speċjali preċedenti permezz ta' white-space: pre-wrap. Barra minn hekk, rustdoc ma jibqax jikkanċella missing_doc_code_examples għal elementi ġewwa impl, u l-metodi u l-funzjonijiet assoċjati issa huma separati fil-sidebar tad-dokumentazzjoni.Inkompatibilitajiet possibbli.
Ir-rilaxx fih diversi bidliet li jistgħu jidhru f'kodiċi mhux standard: it-tqassim ta' xi enums #[repr(Int)] ġie rranġat f'każijiet estremi, u xi unsize casts inutli f'Pin ġew diżattivati. , Il-bini tal-WebAssembly issa jikkraxxja fuq simboli mhux definiti, l-attribut #![reexport_test_harness_main] li ġie stabbilizzat aċċidentalment ġie feature gated mill-ġdid, l-għażla -Csoft-float tneħħiet, u l-verżjoni minima esterna tal-LLVM żdiedet għal 21. Għal AVR, it-tip c_double inbidel għal f32, peress li C doubles huma 32-bit awtomatikament fuq dawn il-miri.
Sors: linux.org.ru
