Sadid 1.96.0

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à.
    Rust 1.96.0 jirranġa żewġ vulnerabbiltajiet li jaffettwaw lill-utenti ta' reġistri ta' partijiet terzi. CVE-2026-5223 Relatat mal-immaniġġjar tas-symlinks fit-tarballs tal-crate: pakkett malizzjuż minn reġistru ta' parti terza jista' jissostitwixxi l-cache ta' pakkett ieħor mill-istess reġistru. Mill-verżjoni Rust 1.96.0 'l quddiem, Cargo tirrifjuta arkivji tal-crate li fihom symlinks. CVE-2026-5222 Din il-kwistjoni tirrelata man-normalizzazzjoni tal-URL fir-reġistru spars u, f'ċirkostanzi rari, tista' tirriżulta fit-trażmissjoni ta' token tal-Cargo lil reġistru malizzjuż. Skont it-tim ta' Rust, l-utenti ta' crates.io mhumiex affettwati minn dawn il-kwistjonijiet.

  • 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

Ixtri hosting affidabbli għal siti bi protezzjoni DDoS, servers VPS VDS 🔥 Ixtri hosting ta' websajts affidabbli bi protezzjoni DDoS, servers VPS VDS | ProHoster