Ryð 1.96.0

Útgáfan hefur verið birt Ryð 1.96.0 — nýjasta stöðuga útgáfan af forritunarmálinu Rust. Uppfærslan hefur verið gefin út. 28 maí 2026 ári; það er hægt að setja það upp með stöðluðu rustup update stable skipuninni. Helstu breytingarnar eru meðal annars nýjar sviðsgerðir í core::range, stöðugleiki á mynstursamsvörunarfjölum, hert hegðun WebAssembly og lagfæringar á tveimur veikleikum í Cargo.

Miklar breytingar

  • Nýjar gerðir af bili: core::range::Range*.
    Nýjar sviðsgerðir hafa verið stöðugar í staðlaða bókasafninu: core::range::Range, RangeFrom, RangeInclusive og tengdum ítrurum. Ólíkt gömlu gerðunum úr core::ops, þá nota nýju sviðin ekki Iterator beint, heldur eru þau breytt í ítrara í gegnum IntoIterator. Þetta gerir það að verkum að þessi svið eru afritanleg, sem er þægilegt, til dæmis þegar svið er geymt sem uppbyggingarreitur. Setningafræði eins og 0..1 býr nú til gömlu sviðsgerðirnar, en áætlað er að flytja þær yfir í nýju gerðirnar í framtíðarútgáfu af forritunarmálinu.

  • Bætti við assert_matches! og debug_assert_matches!.
    Nýjar makróar leyfa þér að athuga hvort gildi passi við tiltekið mynstur. Þetta er svipað í hugmyndafræði og assert!(matches!(…)), en ef villa kemur upp er villuleitarframsetning gildisins prentuð, sem einföldar greiningar. Þessum makróum var ekki bætt við Prelude til að forðast árekstra við vinsælar kerfi frá þriðja aðila, þannig að þau verða að vera flutt inn sérstaklega úr core eða std.

  • Breytti hegðun WebAssembly markmiða.
    Rust sendir ekki lengur --allow-undefined til tengilsins fyrir WebAssembly smíðar. Óskilgreind tákn eru nú meðhöndluð sem villur við tengingu, frekar en að vera sjálfkrafa breytt í innflutning frá "env" einingunni. Þetta ætti að fanga smíðavillur og ógild táknnöfn fyrr. Hægt er að snúa við gömlu hegðuninni, ef þörf krefur, með því að nota RUSTFLAGS=-Clink-arg=--allow-undefined eða með því að tilgreina sérstaklega innflutta wasm eininguna með #[link(wasm_import_module = "env")].

  • Cargo hefur fengið öryggisleiðréttingar.
    Rust 1.96.0 lagar tvo veikleika sem hafa áhrif á notendur skráa þriðja aðila. CVE-2026-5223 Tengt meðhöndlun táknfræðilegra tengla innan crate tarballs: illgjarn pakki frá þriðja aðila skrá gæti skrifað yfir skyndiminni annars pakka úr sömu skrá. Frá og með Rust 1.96.0 hafnar Cargo crate skjalasöfnum sem innihalda táknfræðilegar tengla. CVE-2026-5222 Þetta vandamál tengist staðlun vefslóða í sparse skrásetningunni og gæti, í mjög sjaldgæfum tilvikum, leitt til þess að Cargo-tákn sé sent í illgjarn skrásetning. Samkvæmt Rust-teyminu hafa þessi vandamál ekki áhrif á notendur crates.io.

  • Breytingar á tungumáli.
    Útgáfan inniheldur: Nokkrar minniháttar lagfæringar og úrbætur: Leyfði að senda expr metabreytur úr makróum til cfg, leiðrétti never-type casting í túple-tjáningum, lagfærði sjaldgæf tilfelli af röngum vísbendingum um tegundarályktun fyrir fallfæribreytur, bætti við stuðningi við s390x vektorskrár í inline-samsetningu og leyfði aftur ManuallyDrop fasta sem sniðmát - þetta lagar aðhvarfsgreiningu sem kynnt var til sögunnar í Rust 1.94.0.

  • Breytingar á þýðanda og kerfum.
    Fyrir LinuxStuðningur við slökun tengla hefur verið virkjaður fyrir LoongArch-markmið — tenglabestun sem einföldar sumar breytingar og köll eftir kóðadreifingu. Fyrir riscv64gc-unknown-fuchsia hefur grunnstillingin verið uppfærð í RVA22-sniðið með stuðningi við vektorviðbætur.

  • Staðlaðar uppfærslur á bókasafni.
    Stuðningur við ítrun yfir heiltölubil sem eru ekki núll hefur verið bætt við. Letileg meðhöndlun á hýsilvistföngum í SGX í gegnum ToSocketAddr hefur einnig verið leiðrétt og skilgreiningin á „lesanlegu/skrifanlegu“ minni hefur verið skýrð í skjölun og innri samningum: núllvísirinn hefur verið fjarlægður úr almennu skilgreiningunni og undantekningar eru nú tilgreindar sérstaklega fyrir tilteknar aðferðir.

  • Stöðug API.
    Meðal stöðugra viðmóta eru assert_matches!, debug_assert_matches!, útfærslur af From fyrir AssertUnwindSafe , LazyCell og LazyLock , sem og nýjar sviðsgerðir og ítrendur úr core::range, þar á meðal Range, RangeFrom, RangeToInclusive og ítrendur þeirra.

  • Farmur: Breytingar á ósjálfstæði og skjölun.
    Ósjálfstæði getur nú tilgreint bæði Git-geymslu og aðra skrásetningu: Git-útgáfan verður notuð staðbundið og skrásetningarútgáfan verður notuð við útgáfu, svipað og hegðunin hjá crates.io. Stuðningur við target.'cfg(..)'.rustdocflags í Cargo-stillingunni hefur einnig verið bætt við.

  • Rustdoc meðhöndlar nú skjölun á nákvæmari hátt.
    Úreltar API-skýringar eru nú birtar sem venjuleg skjölun, án fyrri sérstakrar vinnslu með hvítu bili: forvinnslu. Að auki sendir rustdoc ekki lengur upp missing_doc_code_examples fyrir stök innan impl, og aðferðir og tengd föll eru nú aðskilin í hliðarstikunni fyrir skjölun.

  • Möguleg ósamrýmanleiki.
    Útgáfan inniheldur nokkrar breytingar sem geta komið fram í óstaðlaðum kóða: útlit sumra #[repr(Int)] talna hefur verið lagað í öfgafullum tilfellum og sumar gagnslausar óstærðarútgáfur í Pin hafa verið óvirkjar. , WebAssembly byggingar hrynja nú á óskilgreindum táknum, óvart stöðugaða #![reexport_test_harness_main] eigindið hefur verið virkjað aftur, -Csoft-float valkosturinn hefur verið fjarlægður og lágmarksútgáfa af ytri LLVM hefur verið aukin í 21. Fyrir AVR hefur c_double gerðinni verið breytt í f32, þar sem C doubles eru sjálfgefið 32-bita á þessum skotmörkum.

Heimild: linux.org.ru

Kauptu áreiðanlega hýsingu fyrir síður með DDoS vernd, VPS VDS netþjónum 🔥 Kauptu áreiðanlega vefhýsingu með DDoS vörn, VPS VDS netþjónum | ProHoster