Yo pibliye piblikasyon an Rouye 1.96.0 â dènye vèsyon ki estab nan langaj pwogramasyon Rust la. Mizajou a te pibliye. 28 Me 2026 ane; ou ka enstale li lè w sèvi ak kòmand estanda rustup update stable la. Chanjman prensipal yo enkli nouvo kalite ranje nan core::range, estabilizasyon makro ki matche modèl, rediksyon konpòtman konstriksyon WebAssembly, ak koreksyon pou de vilnerabilite nan Cargo.
Gwo chanjman
Nouvo kalite ranje core::range::Range*.
Nouvo kalite ranje yo te estabilize nan bibliyotèk estanda a: core::range::Range, RangeFrom, RangeInclusive, ak iteratè ki asosye avèk yo. Kontrèman ak ansyen kalite ki soti nan core::ops, nouvo ranje yo pa aplike Iterator dirèkteman, men yo konvèti an yon iteratè atravè IntoIterator. Sa pèmèt ranje sa yo ka kopye, ki pratik, pa egzanp, lè w ap estoke yon ranje kòm yon chan estrikti. Sentaks tankou 0..1 kounye a kreye ansyen kalite ranje yo, men li prevwa pou yo migre nan nouvo kalite yo nan yon vèsyon langaj la nan lavni.Te ajoute assert_matches! ak debug_assert_matches!.
Nouvo makro yo pèmèt ou verifye si yon valè koresponn ak yon modèl yo bay. Sa a sanble nan konsèp ak assert!(matches!(âŚ)), men nan ka ta gen yon erè, yon reprezantasyon debogaj valè a enprime, sa ki senplifye dyagnostik yo. Makro sa yo pa te ajoute nan Prelude pou evite konfli ak kès twazyèm pati popilè yo, kidonk yo dwe enpòte eksplisitman soti nan core oswa std.Chanje konpòtman sib WebAssembly yo.
Rust pa pase --allow-undefined bay linker la ankò pou konstriksyon WebAssembly yo. Senbòl ki pa defini yo kounye a trete kòm erè pandan koneksyon an, olye pou yo konvèti otomatikman an enpòtasyon soti nan modil "env" la. Sa ta dwe detekte erè konstriksyon ak non senbòl ki pa valab pi bonè. Ou ka ranvèse ansyen konpòtman an, si sa nesesè, lè w sèvi ak RUSTFLAGS=-Clink-arg=--allow-undefined oubyen lè w presize modil wasm enpòte a eksplisitman lè w sèvi ak #[link(wasm_import_module = "env")].Kago a te resevwa koreksyon sekirite.
Chanjman nan langaj.
Piblikasyon an gen ladan l: Plizyè ti koreksyon ak amelyorasyon: Yo te pèmèt pase metavaryab expr nan makro bay cfg, yo te korije konsteksyon ki pa janm gen kalite nan ekspresyon tuple, yo te fikse ka ra kote endikasyon enferans kalite ki pa kòrèk pou agiman fonksyon yo, yo te ajoute sipò pou rejis vektè s390x nan asanblaj anliy, epi yo te re-otorize konstan ManuallyDrop kòm modèlâsa a te korije yon regresyon ki te prezante nan Rust 1.94.0.Chanjman nan konpilatè ak platfòm yo.
Pou LinuxYo aktive sipò relaksasyon lyen pou sib LoongArch yoâyon optimizasyon lyen ki senplifye kèk tranzisyon ak apèl apre deplwaman kòd. Pou riscv64gc-unknown-fuchsia, yo mete ajou konfigirasyon debaz la nan pwofil RVA22 la ak sipò pou ekstansyon vektè.Mizajou bibliyotèk estanda yo.
Yo te ajoute sipò pou iterasyon sou seri antye ki pa Zero. Yo te korije tou pwoblèm jesyon adrès òdinatè nan SGX atravè ToSocketAddr, epi yo te klarifye definisyon memwa "lizib/ekrisib" nan dokimantasyon an ak kontra entèn yo: yo te retire pwentè nil la nan definisyon jeneral la, epi kounye a yo espesifye eksepsyon separeman pou metòd espesifik.API estabilize.
Pami koòdone ki estabilize yo genyen assert_matches!, debug_assert_matches!, aplikasyon From pou AssertUnwindSafe , LazyCell ak LazyLock , ansanm ak nouvo kalite ranje ak iteratè ki soti nan core::range, ki gen ladan Range, RangeFrom, RangeToInclusive ak iteratè yo.Kago: Chanjman nan depandans ak dokimantasyon.
Kounye a, yon depandans kapab espesifye tou de yon depo Git ak yon rejis altènatif: vèsyon Git la pral itilize lokalman, epi vèsyon rejis la pral itilize pandan piblikasyon an, menm jan ak konpòtman an ak crates.io. Yo te ajoute tou sipò pou target.'cfg(..)'.rustdocflags nan konfigirasyon Cargo a.Rustdoc kounye a jere dokimantasyon yo avèk plis presizyon.
Nòt API ki pa rekòmande yo kounye a parèt kòm dokimantasyon regilye, san pwosesis espesyal anvan an atravè white-space: pre-wrap. Anplis de sa, rustdoc pa efase missing_doc_code_examples pou eleman ki andedan impl ankò, epi metòd yo ak fonksyon ki asosye yo kounye a separe nan ba lateral dokimantasyon an.Enkonpatibilite posib.
Vèsyon sa a gen plizyè chanjman ki ka parèt nan kòd ki pa estanda: yo korije layout kèk enum #[repr(Int)] nan ka ekstrèm yo, epi yo enfim kèk transfòmasyon unsize ki pa itil nan Pin. , Konstriksyon WebAssembly yo kounye a plante sou senbòl ki pa defini, atribi #![reexport_test_harness_main] ki te estabilize aksidantèlman an te sibi yon lòt baryè, opsyon -Csoft-float la te retire, epi vèsyon minimòm LLVM ekstèn lan te ogmante a 21. Pou AVR, kalite c_double la te chanje an f32, piske C double yo se 32-bit pa default sou sib sa yo.
Sous: linux.org.ru
