Rhwd 1.96.0

Mae'r datganiad wedi'i gyhoeddi Rhwd 1.96.0 — y fersiwn sefydlog ddiweddaraf o'r iaith raglennu Rust. Mae'r diweddariad wedi'i ryddhau. 28 Mai 2026 y flwyddyn; gellir ei osod gan ddefnyddio'r gorchymyn safonol rustup update stable. Mae'r prif newidiadau'n cynnwys mathau o ystod newydd yn core::range, sefydlogi macros paru patrymau, tynhau ymddygiad adeiladu WebAssembly, ac atgyweiriadau ar gyfer dau wendid yn Cargo.

Newidiadau mawr

  • Mathau o ystod newydd core::range::Range*.
    Mae mathau amrediad newydd wedi'u sefydlogi yn y llyfrgell safonol: core::range::Range, RangeFrom, RangeInclusive, a'u iterwyr cysylltiedig. Yn wahanol i'r hen fathau o core::ops, nid yw'r amrediadau newydd yn gweithredu Iterator yn uniongyrchol, ond cânt eu trosi'n iterydd trwy IntoIterator. Mae hyn yn caniatáu i'r amrediadau hyn fod yn Gopïadwy, sy'n gyfleus, er enghraifft, wrth storio amrediad fel maes strwythur. Ar hyn o bryd mae cystrawen fel 0..1 yn creu'r hen fathau amrediad, ond bwriedir ei symud i'r mathau newydd mewn fersiwn yn y dyfodol o'r iaith.

  • Ychwanegwyd assert_matches! a debug_assert_matches!.
    Mae macros newydd yn caniatáu ichi wirio bod gwerth yn cyfateb i batrwm penodol. Mae hyn yn debyg o ran cysyniad i assert!(matches!(…)), ond os bydd gwall, mae cynrychiolaeth dadfygio o'r gwerth yn cael ei hargraffu, gan symleiddio diagnosteg. Ni ychwanegwyd y macros hyn at Prelude i osgoi gwrthdaro â chraciau trydydd parti poblogaidd, felly rhaid eu mewnforio'n benodol o core neu std.

  • Newidiwyd ymddygiad targedau WebAssembly.
    Nid yw Rust bellach yn pasio --allow-undefined i'r cysylltydd ar gyfer adeiladwaith WebAssembly. Mae symbolau heb eu diffinio bellach yn cael eu trin fel gwallau yn ystod cysylltu, yn hytrach na chael eu trosi'n awtomatig i fewnforion o'r modiwl "env". Dylai hyn ddal gwallau adeiladu ac enwau symbolau annilys yn gynharach. Gellir gwrthdroi'r hen ymddygiad, os oes angen, gan ddefnyddio RUSTFLAGS=-Clink-arg=--allow-undefined neu drwy nodi'n benodol y modiwl wasm a fewnforiwyd gan ddefnyddio #[link(wasm_import_module = "env")].

  • Mae Cargo wedi derbyn atgyweiriadau diogelwch.
    Mae Rust 1.96.0 yn trwsio dau wendid sy'n effeithio ar ddefnyddwyr cofrestrfeydd trydydd parti. CVE-2026-5223 Yn gysylltiedig â thrin dolenni symbolaidd o fewn tarballs crate: gallai pecyn maleisus o gofrestrfa trydydd parti drosysgrifennu storfa pecyn arall o'r un gofrestrfa. Gan ddechrau gyda Rust 1.96.0, mae Cargo yn gwrthod archifau crate sy'n cynnwys dolenni symbolaidd. CVE-2026-5222 Mae'r broblem hon yn ymwneud â normaleiddio URL yn y gofrestrfa wasgarog ac, o dan amgylchiadau prin, gallai arwain at anfon tocyn Cargo i gofrestrfa faleisus. Yn ôl tîm Rust, nid yw defnyddwyr crates.io yn cael eu heffeithio gan y problemau hyn.

  • Newidiadau yn yr iaith.
    Mae'r datganiad yn cynnwys: Sawl atgyweiriad a gwelliant bach: Caniatáu pasio meta-newidynnau expr macros i cfg, cywiro castio never-type mewn mynegiadau tiwpl, trwsio achosion prin o awgrymiadau casglu math anghywir ar gyfer dadleuon swyddogaeth, ychwanegu cefnogaeth ar gyfer cofrestri fector s390x mewn cydosodiad mewnol, ac ail-ganiatáu cysonion ManuallyDrop fel templedi—mae hyn yn trwsio atchweliad a gyflwynwyd yn Rust 1.94.0.

  • Newidiadau yn y crynhoydd a'r llwyfannau.
    I LinuxMae cefnogaeth ymlacio cysylltiadau wedi'i alluogi ar gyfer targedau LoongArch—optimeiddio cysylltu sy'n symleiddio rhai trawsnewidiadau a galwadau ar ôl defnyddio cod. Ar gyfer riscv64gc-unknown-fuchsia, mae'r cyfluniad sylfaenol wedi'i ddiweddaru i'r proffil RVA22 gyda chefnogaeth ar gyfer estyniadau fector.

  • Diweddariadau llyfrgell safonol.
    Ychwanegwyd cefnogaeth ar gyfer ailadrodd dros ystodau cyfanrifau nad ydynt yn sero. Mae trin cyfeiriadau gwesteiwr yn SGX yn ddiog trwy ToSocketAddr hefyd wedi'i drwsio, ac mae diffiniad cof "darllenadwy/ysgrifenadwy" wedi'i egluro yn y ddogfennaeth a'r contractau mewnol: mae'r pwyntydd nwl wedi'i dynnu o'r diffiniad cyffredinol, ac mae eithriadau bellach wedi'u nodi ar wahân ar gyfer dulliau penodol.

  • APIs wedi'u sefydlogi.
    Ymhlith y rhyngwynebau sefydlog mae assert_matches!, debug_assert_matches!, gweithrediadau o From ar gyfer AssertUnwindSafe , LazyCell a LazyLock , yn ogystal â mathau o ystodau ac iterwyr newydd o core::range, gan gynnwys Range, RangeFrom, RangeToInclusive a'u iterwyr.

  • Cargo: Newidiadau i ddibyniaethau a dogfennaeth.
    Gall dibyniaeth nawr nodi storfa Git a chofrestrfa amgen: bydd y fersiwn Git yn cael ei defnyddio'n lleol, a bydd y fersiwn cofrestrfa yn cael ei defnyddio yn ystod cyhoeddi, yn debyg i'r ymddygiad gyda crates.io. Ychwanegwyd cefnogaeth ar gyfer target.'cfg(..)'.rustdocflags yn y ffurfweddiad Cargo hefyd.

  • Mae Rustdoc bellach yn trin dogfennaeth yn fwy cywir.
    Mae nodiadau API sydd wedi darfod bellach yn cael eu rendro fel dogfennaeth reolaidd, heb y prosesu arbennig blaenorol trwy ofod gwyn: cyn-lapio. Yn ogystal, nid yw rustdoc bellach yn nodi missing_doc_code_examples ar gyfer elfennau y tu mewn i impl, ac mae dulliau a swyddogaethau cysylltiedig bellach wedi'u gwahanu yn y bar ochr dogfennaeth.

  • Anghydnawseddau posibl.
    Mae'r datganiad yn cynnwys sawl newid a all ymddangos mewn cod ansafonol: mae cynllun rhai enumiau #[repr(Int)] wedi'i drwsio mewn achosion eithafol, ac mae rhai castiau di-faint diwerth yn Pin wedi'u hanalluogi. Mae adeiladwaith WebAssembly bellach yn damwain ar symbolau heb eu diffinio, mae'r priodoledd #![reexport_test_harness_main] a sefydlogwyd ar ddamwain wedi'i atal rhag defnyddio nodweddion eto, mae'r opsiwn -Csoft-float wedi'i ddileu, ac mae'r fersiwn LLVM allanol gofynnol wedi'i chynyddu i 21. Ar gyfer AVR, mae'r math c_double wedi'i newid i f32, gan fod C doubles yn 32-bit yn ddiofyn ar y targedau hyn.

Ffynhonnell: linux.org.ru

Prynu gwesteio dibynadwy ar gyfer gwefannau sydd â diogelwch DDoS, gweinyddwyr VPS VDS 🔥 Prynu cynnal gwefannau dibynadwy gyda diogelwch DDoS, gweinyddion VPS VDS | ProHoster