Rilisna parantos diterbitkeun Karat 1.96.0 — vérsi stabil panganyarna tina basa pamrograman Rust. Apdetna parantos dileupaskeun. 28 Méi 2026; éta tiasa dipasang nganggo paréntah rustup update stable standar. Parobihan utama kalebet jinis rentang anyar dina core::range, stabilisasi makro anu cocog sareng pola, pengetatan paripolah ngawangun WebAssembly, sareng perbaikan pikeun dua kerentanan dina Cargo.
Parobihan ageung
Tipe rentang anyar core::range::Range*.
Tipe rentang anyar parantos distabilisasi dina pustaka standar: core::range::Range, RangeFrom, RangeInclusive, sareng iterator anu aya hubunganana. Teu sapertos tipe lami tina core::ops, rentang anyar henteu langsung ngalaksanakeun Iterator, tapi dirobih janten iterator ngalangkungan IntoIterator. Ieu ngamungkinkeun rentang ieu tiasa Disalin, anu merenah, contona, nalika nyimpen rentang salaku widang struktur. Sintaksis sapertos 0..1 ayeuna nyiptakeun tipe rentang lami, tapi direncanakeun bakal dimigrasikeun ka tipe anyar dina vérsi basa anu bakal datang.Nambahkeun assert_matches! sareng debug_assert_matches!.
Makro anyar ngamungkinkeun anjeun pikeun mariksa naha hiji nilai cocog sareng pola anu dipasihkeun. Ieu konsépna sami sareng assert!(matches!(…)), tapi upami aya kasalahan, répréséntasi debug tina nilai éta dicitak, ngagampangkeun diagnostik. Makro ieu henteu ditambahkeun kana Prelude pikeun nyingkahan konflik sareng peti pihak katilu anu populér, janten éta kedah diimpor sacara éksplisit tina inti atanapi std.Parobahan paripolah target WebAssembly.
Rust teu deui ngirimkeun --allow-undefined ka linker pikeun build WebAssembly. Simbol anu teu didefinisikeun ayeuna dianggap salaku kasalahan nalika ngaitkeun, tinimbang sacara otomatis dirobih janten impor tina modul "env". Ieu kedahna mendakan kasalahan build sareng nami simbol anu teu valid langkung awal. Paripolah anu lami tiasa dibalikkeun deui, upami diperyogikeun, nganggo RUSTFLAGS=-Clink-arg=--allow-undefined atanapi ku cara netepkeun modul wasm anu diimpor sacara éksplisit nganggo #[link(wasm_import_module = "env")].Cargo parantos nampi perbaikan kaamanan.
Parobahan dina basa.
Rilis éta ngawengku: Sababaraha perbaikan sareng paningkatan minor: Ngidinan ngirimkeun metavariabel expr tina makro ka cfg, ngabenerkeun casting never-type dina éksprési tuple, ngalereskeun kasus langka tina petunjuk inferensi tipe anu salah pikeun argumen fungsi, nambihan dukungan pikeun register vektor s390x dina rakitan inline, sareng ngijinkeun deui konstanta ManuallyDrop salaku témplat—ieu ngalereskeun régrési anu diwanohkeun dina Rust 1.94.0.Parobahan dina kompiler sareng platform.
keur LinuxDukungan relaksasi tautan parantos diaktipkeun pikeun target LoongArch—optimasi tautan anu ngagampangkeun sababaraha transisi sareng panggero saatos palaksanaan kode. Pikeun riscv64gc-unknown-fuchsia, konfigurasi dasar parantos diénggalan kana profil RVA22 kalayan dukungan pikeun éksténsi véktor.Apdet perpustakaan standar.
Pangrojong pikeun iterasi dina rentang integer NonZero parantos ditambahkeun. Pangaturan alamat host anu malas dina SGX via ToSocketAddr ogé parantos diropéa, sareng definisi mémori "anu tiasa dibaca/ditulis" parantos dijelaskeun dina dokuméntasi sareng kontrak internal: pointer null parantos dihapus tina definisi umum, sareng pengecualian ayeuna ditangtukeun sacara misah pikeun metode khusus.API anu distabilisasi.
Di antara antarmuka anu distabilisasi nyaéta assert_matches!, debug_assert_matches!, implementasi From pikeun AssertUnwindSafe , LazyCell sareng LazyLock , kitu ogé jinis range sareng iterator énggal tina core::range, kalebet Range, RangeFrom, RangeToInclusive sareng iteratorna.Kargo: Parobihan kana katergantungan sareng dokuméntasi.
Katergantungan ayeuna tiasa nangtukeun boh gudang Git sareng pendaptaran alternatif: vérsi Git bakal dianggo sacara lokal, sareng vérsi pendaptaran bakal dianggo nalika penerbitan, sami sareng paripolah sareng crates.io. Dukungan pikeun target.'cfg(..)'.rustdocflags dina konfigurasi Cargo ogé parantos ditambahkeun.Rustdoc ayeuna ngatur dokumentasi langkung akurat.
Catetan API anu teu dianggo deui ayeuna di-render salaku dokuméntasi biasa, tanpa pamrosésan khusus sateuacanna via spasi-bodas: pre-wrap. Salaku tambahan, rustdoc henteu deui ngalinting missing_doc_code_examples pikeun unsur-unsur di jero impl, sareng metode sareng fungsi anu aya hubunganana ayeuna dipisahkeun dina bilah sisi dokuméntasi.Kamungkinan aya inkompatibilitas.
Rilis ieu ngandung sababaraha parobihan anu tiasa muncul dina kode non-standar: tata letak sababaraha enum #[repr(Int)] parantos dibenerkeun dina kasus anu ekstrim, sareng sababaraha cetakan ukuran anu teu aya gunana dina Pin parantos ditumpurkeun. , Wangunan WebAssembly ayeuna nabrak dina simbol anu teu dihartikeun, atribut #![reexport_test_harness_main] anu teu kahaja distabilisasi parantos di-gated fitur deui, pilihan -Csoft-float parantos dihapus, sareng vérsi LLVM éksternal minimum parantos ningkat janten 21. Pikeun AVR, jinis c_double parantos dirobih janten f32, kumargi C doubles sacara standar nyaéta 32-bit dina target ieu.
sumber: linux.org.ru
