Rûst 1.96.0

Hevpeyvîn hat weşandin Rûst 1.96.0 — guhertoya herî dawî ya sabît a zimanê bernamesaziyê yê Rust. Nûvekirin hatiye weşandin. 28 Gulan 2026; ew dikare bi karanîna fermana standard a rustup update stable were sazkirin. Guhertinên sereke celebên rêza nû di core::range de, stabîlkirina makroyên lihevhatina şablonan, hişkkirina tevgera avakirina WebAssembly, û rastkirinên du qelsiyên di Cargo de vedihewîne.

Guherînên mezin

  • Cureyên rêzeyên nû core::range::Range*.
    Cureyên rêzeyên nû di pirtûkxaneya standard de hatine stabîlkirin: core::range::Range, RangeFrom, RangeInclusive, û îteratorên wan ên têkildar. Berevajî celebên kevin ên ji core::ops, rêzeyên nû rasterast Iterator bicîh nakin, lê bi rêya IntoIterator ve têne veguheztin îteratorek. Ev dihêle ku ev rêze kopî bibin, ku ev yek, mînakî, dema ku rêzek wekî qadeke avahiyê tê hilanîn, guncan e. Rêzimanek mîna 0..1 niha celebên rêzeyên kevin diafirîne, lê tê plankirin ku di guhertoyek pêşerojê ya ziman de ji bo celebên nû were veguheztin.

  • assert_matches! û debug_assert_matches! hatine zêdekirin.
    Makroyên nû dihêlin hûn kontrol bikin ka nirxek bi qalibek diyarkirî re li hev tê. Ev di konseptê de dişibihe assert!(matches!(…)), lê di rewşa xeletiyekê de, nûneratiyek debug a nirxê tê çap kirin, ku teşhîsê hêsan dike. Ev makro li Prelude nehatine zêdekirin da ku ji pevçûnan bi qutiyên sêyemîn ên populer dûr bikevin, ji ber vê yekê divê ew bi eşkere ji core an std werin import kirin.

  • Reftara hedefên WebAssembly guherand.
    Rust êdî --allow-undefined ji bo avakirina WebAssembly nade girêdanê. Sembolên nepenî niha di dema girêdanê de wekî xeletî têne hesibandin, li şûna ku bixweber ji modula "env" werin veguheztin bo hawirdekirinê. Ev divê xeletiyên avakirinê û navên sembolên nederbasdar zûtir bigire. Ger hewce be, tevgera kevin dikare were vegerandin bi karanîna RUSTFLAGS=-Clink-arg=--allow-undefined an jî bi diyarkirina eşkere ya modula wasm a hawirdekirî bi karanîna #[link(wasm_import_module = "env")].

  • Kargoyê çareseriyên ewlehiyê wergirtiye.
    Rust 1.96.0 du kêmasiyên ku bandorê li bikarhênerên qeydên partiya sêyemîn dikin rast dike. CVE-2026-5223 Girêdayî birêvebirina girêdanên sembolîk di nav pelên tarball ên qutiyê de: pakêtek zirardar ji qeyda partiyek sêyemîn dikare li ser keşeya pakêtek din ji heman qeydê binivîse. Ji Rust 1.96.0 dest pê dike, Cargo arşîvên qutiyê yên ku girêdanên sembolîk dihewînin red dike. CVE-2026-5222 Ev pirsgirêk bi normalîzekirina URL-ê di qeyda kêm de ve girêdayî ye û, di rewşên kêm de, dikare bibe sedema şandina nîşanek Cargo bo qeydek zirardar. Li gorî tîma Rust, bikarhênerên crates.io ji van pirsgirêkan bandor nabin.

  • Guhertinên di ziman de.
    Berdan ev in: Çend rastkirin û başkirinên piçûk: Destûr hat dayîn ku metaguherbarên expr ên makroyan ji cfg re werin şandin, guherbarên tîpa nerast di îfadeyên tuple de hatin rastkirin, rewşên kêm ên nîşanên çewt ên texmîna tîpan ji bo argumanên fonksiyonê hatin rastkirin, piştgirî ji bo qeydên vektorê s390x di kombînasyona rêzê de hat zêdekirin, û sabîtên ManuallyDrop wekî şablonan ji nû ve hatin destûrkirin - ev regresyonek ku di Rust 1.94.0 de hatibû destnîşan kirin rast dike.

  • Guhertinên di kompîlator û platforman de.
    bo LinuxPiştgiriya rihetbûna girêdanê ji bo hedefên LoongArch-ê hatiye çalakkirin - optîmîzasyonek girêdanê ku hin veguheztin û bangan piştî bicihkirina kodê hêsan dike. Ji bo riscv64gc-unknown-fuchsia, mîhenga bingehîn bi piştgiriya dirêjkirinên vektorê ve bi profîla RVA22 re hatiye nûvekirin.

  • Nûvekirinên pirtûkxaneya standard.
    Piştgiriya dubarekirinê li ser rêzên hejmarên NonZero hatiye zêdekirin. Karê sist ê navnîşanên mêvandar di SGX de bi rêya ToSocketAddr jî hatiye rastkirin, û pênaseya bîra "xwendin/nivîsandin" di belge û peymanên navxweyî de hatiye zelalkirin: nîşankera null ji pênaseya giştî hatiye rakirin, û niha îstîsna ji bo rêbazên taybetî cuda têne destnîşankirin.

  • API-yên sabîtkirî.
    Di nav navrûyên sabîtkirî de assert_matches!, debug_assert_matches!, pêkanînên From hene. ji bo AssertUnwindSafe , LazyCell û LazyLock , û her weha celebên rêzê û dubarekerên nû ji core::range, di nav de Range, RangeFrom, RangeToInclusive û dubarekerên wan.

  • Bar: Guhertinên li ser girêdayîbûn û belgekirinê.
    Niha girêdayîbûnek dikare hem depoyek Git û hem jî qeydek alternatîf diyar bike: guhertoya Git dê bi awayekî herêmî were bikar anîn, û guhertoya qeydê dê di dema weşanê de were bikar anîn, mîna tevgera bi crates.io re. Piştgiriya ji bo target.'cfg(..)'.rustdocflags di mîhengê Cargo de jî hatiye zêdekirin.

  • Rustdoc niha belgeyan bi awayekî rasttir bi rê ve dibe.
    Nîşeyên API-yê yên kevnar niha wekî belgekirina birêkûpêk têne pêşkêş kirin, bêyî pêvajoya taybetî ya berê bi rêya white-space: pre-wrap. Wekî din, rustdoc êdî ji bo hêmanên di hundurê implê de missing_doc_code_examples nîşan nade, û rêbaz û fonksiyonên têkildar niha di panela alî ya belgekirinê de ji hev têne veqetandin.

  • Nelihevhatinên gengaz.
    Guherto çend guhertinan dihewîne ku dibe ku di koda ne-standard de xuya bibin: di rewşên ekstrem de şêwaza hin hejmarên #[repr(Int)] hatiye sererast kirin, û hin castên bêkêr ên bêpîvan di Pin de hatine neçalak kirin. , Avakirina WebAssembly niha li ser sembolên ne diyar têk diçe, taybetmendiya #![reexport_test_harness_main] ya bi xeletî sabîtbûyî dîsa hatiye girtin, vebijarka -Csoft-float hatiye rakirin, û guhertoya herî kêm a LLVM ya derveyî bo 21 hatiye zêdekirin. Ji bo AVR, cureya c_double bo f32 hatiye guhertin, ji ber ku C double li ser van armancan bi xwerû 32-bit in.

Source: linux.org.ru

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster