D'Verëffentlechung gouf publizéiert roscht 1.96.0 — déi lescht stabil Versioun vun der Programméiersprooch Rust. Den Update ass erauskomm. 28 Mee 2026 Joer; et kann mat dem Standardkommando rustup update stable installéiert ginn. Zu den Haaptännerunge gehéieren nei Range-Typen am core::range, d'Stabiliséierung vu Muster-Matching-Makroen, d'Verschäerfung vum WebAssembly-Buildverhalen a Korrekturen fir zwou Schwachstelle am Cargo.
Grouss Ännerungen
Nei Beräichstypen core::range::Range*.
Nei Range-Typen goufen an der Standardbibliothéik stabiliséiert: core::range::Range, RangeFrom, RangeInclusive, an hir associéiert Iteratoren. Am Géigesaz zu den alen Typen aus core::ops implementéieren déi nei Ranges den Iterator net direkt, mä ginn iwwer IntoIterator an en Iterator ëmgewandelt. Dëst erlaabt et, dës Ranges kopéierbar ze maachen, wat praktesch ass, zum Beispill wann e Range als Strukturfeld gespäichert gëtt. Syntax wéi 0..1 erstellt aktuell déi al Range-Typen, awer et ass geplangt, se an enger zukünfteger Versioun vun der Sprooch op déi nei Typen ze migréieren.assert_matches! an debug_assert_matches! goufen derbäigesat.
Nei Makroen erlaben Iech ze kontrolléieren, ob e Wäert mat engem bestëmmte Muster iwwereneestëmmt. Dëst ass am Konzept ähnlech wéi assert!(matches!(…)), awer am Fall vun engem Feeler gëtt eng Debug-Representatioun vum Wäert gedréckt, wat d'Diagnostik vereinfacht. Dës Makroen goufen net zu Prelude bäigefüügt fir Konflikter mat populäre Crates vun Drëttubidder ze vermeiden, dofir musse se explizit aus dem Core oder Std importéiert ginn.D'Verhale vun de WebAssembly-Ziler gouf geännert.
Rust gëtt --allow-undefined net méi un de Linker fir WebAssembly Builds weider. Ondefinéiert Symboler ginn elo beim Linken als Feeler behandelt, anstatt automatesch an Importen aus dem "env" Modul ëmgewandelt ze ginn. Dëst sollt Buildfehler an ongëlteg Symbolnimm fréier erkennen. Dat aalt Verhalen kann, wann néideg, mat RUSTFLAGS=-Clink-arg=--allow-undefined oder andeems den importéierte Wasm Modul explizit mat #[link(wasm_import_module = "env")] spezifizéiert gëtt.Cargo huet Sécherheetsreparaturen kritt.
Ännerungen an der Sprooch.
D'Verëffentlechung enthält: E puer kleng Verbesserungen a Fixes: Erlaabt d'Iwwerginn vun expr-Metavariablen vu Makroen un cfg, korrigéiert Never-Type-Casting an Tupel-Ausdréck, korrigéiert rar Fäll vu falschen Typinferenz-Hiweiser fir Funktiounsargumenter, bäigefüügt Ënnerstëtzung fir s390x Vektorregistere an Inline-Assembly, an erëm erlaabt ManuallyDrop-Konstanten als Schablounen - dëst fixéiert eng Regressioun, déi a Rust 1.94.0 agefouert gouf.Ännerungen am Compiler a Plattformen.
fir LinuxËnnerstëtzung fir Linkrelaxatioun gouf fir LoongArch-Ziler aktivéiert - eng Linkoptimiséierung, déi e puer Iwwergäng an Uruff no der Code-Deployment vereinfacht. Fir riscv64gc-unknown-fuchsia gouf d'Basiskonfiguratioun op den RVA22-Profil aktualiséiert mat Ënnerstëtzung fir Vektorerweiderungen.Standard-Bibliothéiksupdates.
Ënnerstëtzung fir Iteratioun iwwer Net-Null-Integerberäicher gouf bäigefüügt. Déi faul Ëmgang mat Hostadressen an SGX iwwer ToSocketAddr gouf och korrigéiert, an d'Definitioun vum "liesbaren/beschreifbaren" Speicher gouf an der Dokumentatioun an den internen Kontrakter präziséiert: den Nullzeiger gouf aus der allgemenger Definitioun ewechgeholl, an Ausname ginn elo separat fir spezifesch Methoden spezifizéiert.Stabiliséiert APIen.
Zu de stabiliséierten Interfaces gehéieren assert_matches!, debug_assert_matches!, Implementatioune vu From fir AssertUnwindSafe , LazyCell an LazyLock , souwéi nei Range-Typen an Iteratoren aus core::range, dorënner Range, RangeFrom, RangeToInclusive an hir Iteratoren.Cargo: Ännerungen un Ofhängegkeeten an Dokumentatioun.
Eng Ofhängegkeet kann elo souwuel e Git-Repository wéi och eng alternativ Registry spezifizéieren: d'Git-Versioun gëtt lokal benotzt, an d'Registry-Versioun gëtt beim Publikéieren benotzt, ähnlech wéi beim Verhalen mat crates.io. Ënnerstëtzung fir target.'cfg(..)'.rustdocflags an der Cargo-Konfiguratioun gouf och bäigefüügt.Rustdoc behandelt elo d'Dokumentatioun méi präzis.
Ofgeschafft API-Notizen ginn elo als normal Dokumentatioun gerendert, ouni déi fréier speziell Veraarbechtung iwwer White-Space: Pre-Wrap. Zousätzlech weist rustdoc net méi missing_doc_code_examples fir Elementer an impl, a Methoden an associéiert Funktiounen sinn elo an der Dokumentatiouns-Säitebar getrennt.Méiglech Inkompatibilitéiten.
Dës Versioun enthält verschidde Ännerungen, déi a Code ouni Standard optriede kënnen: den Layout vun e puer #[repr(Int)] Enums gouf an extremen Fäll korrigéiert, an e puer onnëtz Unsize Casts a Pin goufen deaktivéiert. , WebAssembly-Builds crashen elo bei ondefinéierte Symboler, den zoufälleg stabiliséierten #![reexport_test_harness_main]-Attribut gouf erëm feature-gated, d'Optioun -Csoft-float gouf ewechgeholl, an déi minimal extern LLVM-Versioun gouf op 21 erhéicht. Fir AVR gouf den Typ c_double op f32 geännert, well C-Doubles standardméisseg op dësen Ziler 32-Bit sinn.
Source: linux.org.ru
