Ang pagpagawas gimantala na Taya 1.96.0 — ang pinakabag-o nga stable nga bersyon sa Rust programming language. Gipagawas na ang update. 28 Mayo 2026 ka tuig; mahimo kining i-install gamit ang standard nga rustup update stable command. Ang mga nag-unang pagbag-o naglakip sa bag-ong mga range type sa core::range, pag-stabilize sa pattern matching macros, pagpahugot sa WebAssembly build behavior, ug mga pag-ayo sa duha ka vulnerabilities sa Cargo.
Daghang kausaban
Bag-ong mga tipo sa range core::range::Range*.
Ang bag-ong mga tipo sa range gipalig-on na sa standard library: core::range::Range, RangeFrom, RangeInclusive, ug ang ilang mga kaubang iterator. Dili sama sa daan nga mga tipo gikan sa core::ops, ang bag-ong mga range dili direktang mo-implementar sa Iterator, apan gi-convert ngadto sa usa ka iterator pinaagi sa IntoIterator. Gitugotan niini nga kini nga mga range nga mahimong Kopyahon, nga kombenyente, pananglitan, kung nagtipig sa usa ka range isip usa ka structure field. Ang syntax sama sa 0..1 karon nagmugna sa daan nga mga tipo sa range, apan giplano nga ibalhin ngadto sa bag-ong mga tipo sa umaabot nga bersyon sa pinulongan.Gidugang ang assert_matches! ug debug_assert_matches!.
Ang mga bag-ong macro nagtugot kanimo sa pagsusi nga ang usa ka bili mohaom sa usa ka gihatag nga sumbanan. Kini susama sa konsepto sa assert!(matches!(…)), apan kung adunay sayup, usa ka debug representation sa bili ang i-imprinta, nga nagpasimple sa mga diagnostic. Kini nga mga macro wala gidugang sa Prelude aron malikayan ang mga panagbangi sa mga sikat nga third-party crates, busa kinahanglan kini nga klaro nga gi-import gikan sa core o std.Gibag-o ang pamatasan sa mga target sa WebAssembly.
Dili na moagi ang rust sa --allow-undefined ngadto sa linker para sa mga WebAssembly builds. Ang mga undefined symbols karon giisip nga mga sayop atol sa pag-link, imbes nga awtomatikong i-convert ngadto sa mga import gikan sa "env" module. Kini kinahanglan nga makadakop sa mga sayop sa build ug dili balido nga mga ngalan sa simbolo sa sayo pa. Ang daan nga pamatasan mahimong ibalik, kon gikinahanglan, gamit ang RUSTFLAGS=-Clink-arg=--allow-undefined o pinaagi sa pagtino sa imported nga wasm module gamit ang #[link(wasm_import_module = "env")].Nakadawat og mga pag-ayo sa seguridad ang Cargo.
Mga pagbag-o sa pinulongan.
Ang pagpagawas naglakip sa: Pipila ka gagmay nga mga pag-ayo ug mga pagpaayo: Gitugotan ang pagpasa sa expr metavariables sa mga macros ngadto sa cfg, gikorihir ang never-type casting sa mga tuple expression, giayo ang talagsaong mga kaso sa dili husto nga type inference hints para sa mga function argument, gidugang ang suporta para sa mga s390x vector registers sa inline assembly, ug gitugotan pag-usab ang ManuallyDrop constants isip mga template—kini nag-ayo sa usa ka regression nga gipaila sa Rust 1.94.0.Mga pagbag-o sa compiler ug mga plataporma.
Sa LinuxAng suporta sa link relaxation gipagana para sa mga target sa LoongArch—usa ka linking optimization nga nagpasayon sa pipila ka mga transisyon ug mga tawag human sa pag-deploy sa code. Para sa riscv64gc-unknown-fuchsia, ang base configuration gi-update sa RVA22 profile nga adunay suporta para sa mga vector extension.Mga standard nga pag-update sa librarya.
Gidugang ang suporta para sa pag-iterate sa mga NonZero integer ranges. Giayo usab ang hinay nga pagdumala sa mga host address sa SGX pinaagi sa ToSocketAddr, ug giklaro ang kahulugan sa "readable/writeable" memory sa dokumentasyon ug internal nga mga kontrata: ang null pointer gikuha na gikan sa kinatibuk-ang kahulugan, ug ang mga eksepsiyon karon gipiho nga gilain para sa piho nga mga pamaagi.Mga gipalig-on nga API.
Lakip sa mga gipalig-on nga interface mao ang assert_matches!, debug_assert_matches!, mga implementasyon sa From para sa AssertUnwindSafe , LazyCell ug LazyLock , ingon man mga bag-ong klase sa range ug mga iterator gikan sa core::range, lakip ang Range, RangeFrom, RangeToInclusive ug ang ilang mga iterator.Kargamento: Mga pagbag-o sa mga dependency ug dokumentasyon.
Ang usa ka dependency mahimo na karon nga mo-specify sa usa ka Git repository ug usa ka alternatibong registry: ang bersyon sa Git gamiton sa lokal, ug ang bersyon sa registry gamiton atol sa pag-publish, susama sa pamatasan sa crates.io. Gidugang usab ang suporta para sa target.'cfg(..)'.rustdocflags sa Cargo configuration.Mas tukma na karon nga gidumala sa Rustdoc ang dokumentasyon.
Ang mga wala na gigamit nga mga nota sa API karon gi-render na isip regular nga dokumentasyon, nga wala na ang miaging espesyal nga pagproseso pinaagi sa white-space: pre-wrap. Dugang pa, ang rustdoc dili na mag-lint sa missing_doc_code_examples para sa mga elemento sulod sa impl, ug ang mga pamaagi ug mga kaubang gimbuhaton karon gibulag na sa sidebar sa dokumentasyon.Posibleng mga dili pagkaangay.
Ang release adunay pipila ka mga pagbag-o nga mahimong makita sa dili standard nga code: ang layout sa pipila ka #[repr(Int)] enums naayo na sa grabeng mga kaso, ug ang pipila ka walay pulos nga unsize casts sa Pin gi-disable na. , ang mga WebAssembly builds karon nag-crash sa wala gihubit nga mga simbolo, ang aksidente nga na-stabilize nga #![reexport_test_harness_main] nga attribute gi-feature gated pag-usab, ang -Csoft-float nga opsyon gitangtang, ug ang minimum nga external LLVM nga bersyon gipataas ngadto sa 21. Para sa AVR, ang c_double nga tipo giusab ngadto sa f32, tungod kay ang C doubles kay 32-bit pinaagi sa default niining mga target.
Source: linux.org.ru
