An buga sanarwar Kishiya 1.96.0 — sabuwar sigar da ta dace ta harshen shirye-shiryen Rust. An fitar da sabuntawar. 28 Mayu 2026; ana iya shigar da shi ta amfani da umarnin sabunta rustup na yau da kullun. Manyan canje-canjen sun haɗa da sabbin nau'ikan kewayon a cikin core::range, daidaita macros masu daidaitawa, ƙara ƙarfin halayen gina WebAssembly, da kuma gyara ga raunin da ke tattare da Cargo.
Manyan canje-canje
Sabbin nau'ikan kewayon core::range::Range*.
An daidaita sabbin nau'ikan kewayon a cikin ɗakin karatu na yau da kullun: core::range::Range, RangeFrom, RangeInclusive, da masu maimaita su. Ba kamar tsoffin nau'ikan daga core::ops ba, sabbin jeri ba sa aiwatar da Iterator kai tsaye, amma ana canza su zuwa mai maimaitawa ta hanyar IntoIterator. Wannan yana ba da damar waɗannan jeri su zama masu kwafi, wanda ya dace, misali, lokacin adana jeri a matsayin filin tsari. Tsarin rubutu kamar 0..1 a halin yanzu yana ƙirƙirar tsoffin nau'ikan jeri, amma ana shirin ƙaura zuwa sabbin nau'ikan a cikin sigar harshen nan gaba.An ƙara assert_matches! da debug_assert_matches!.
Sabbin macros suna ba ku damar duba cewa ƙima ta yi daidai da tsarin da aka bayar. Wannan yana kama da ra'ayi don tabbatarwa!(matches!(…)), amma idan akwai kuskure, ana buga wakilcin gyara na ƙimar, yana sauƙaƙa ganewar asali. Ba a ƙara waɗannan macros zuwa Prelude ba don guje wa rikice-rikice da akwatunan ɓangare na uku masu shahara, don haka dole ne a shigo da su kai tsaye daga core ko std.Ya canza halayen maƙasudin WebAssembly.
Tsatsa ba ta ƙara wucewa --allow-undefined zuwa mahaɗin don gina WebAssembly ba. Alamun da ba a bayyana ba yanzu ana ɗaukar su a matsayin kurakurai yayin haɗawa, maimakon a canza su ta atomatik zuwa shigo da su daga tsarin "env". Wannan ya kamata ya kama kurakuran gini da sunayen alamomin da ba su da inganci a baya. Ana iya mayar da tsohon ɗabi'ar, idan ana buƙata, ta amfani da RUSTFLAGS=-Clink-arg=--allow-undefined ko ta hanyar bayyana takamaiman tsarin wasm da aka shigo da shi ta amfani da #[link(wasm_import_module = "env")].An gyara kayan da aka ɗauka daga tsaro.
Canje-canje a harshe.
Fitowar ta haɗa da: Ƙananan gyare-gyare da haɓakawa da dama: An ba da izinin wucewar expr metavariables na macros zuwa cfg, an gyara simintin da ba a taɓa yin irinsa ba a cikin maganganun tuple, an gyara lokuta masu wuya na alamun kuskuren nau'in don hujjojin aiki, an ƙara tallafi ga rajistar vector na s390x a cikin haɗuwar layi, kuma an sake ba da izinin ManuallyDrop constants azaman samfura - wannan yana gyara koma-baya da aka gabatar a cikin Rust 1.94.0.Canje-canje a cikin mai tarawa da dandamali.
domin LinuxAn kunna tallafin shakatawa na hanyar haɗi don maƙasudin LoongArch—haɓaka haɗin gwiwa wanda ke sauƙaƙa wasu sauye-sauye da kira bayan tura lambar. Don riscv64gc-unknown-fuchsia, an sabunta tsarin tushe zuwa bayanin martaba na RVA22 tare da tallafi don faɗaɗa vector.Sabuntawar ɗakunan karatu na yau da kullun.
An ƙara tallafi don maimaitawa akan jerin lambobi na NonZero. An kuma gyara rashin kula da adiresoshin masu masaukin baki a cikin SGX ta hanyar ToSocketAddr, kuma an bayyana ma'anar ƙwaƙwalwar "mai iya karantawa/rubutawa" a cikin takardu da kwangilolin ciki: an cire alamar null daga ma'anar gabaɗaya, kuma yanzu an ƙayyade keɓancewa daban don takamaiman hanyoyin.APIs masu ƙarfi.
Daga cikin hanyoyin da aka daidaita akwai assert_matches!, debug_assert_matches!, aiwatarwa na Daga don AssertUnwindSafe , LazyCell da kuma LazyLock , da kuma sabbin nau'ikan zango da masu maimaitawa daga core::range, gami da Range, RangeFrom, RangeToInclusive da masu maimaitawa.Kaya: Canje-canje ga abubuwan da suka dogara da takardu.
Yanzu dogaro zai iya ƙayyade wurin ajiyar Git da kuma madadin rajista: za a yi amfani da sigar Git a gida, kuma za a yi amfani da sigar rajista yayin bugawa, kamar yadda ake yi da crates.io. An kuma ƙara tallafi ga target.'cfg(..)'.rustdocflags a cikin tsarin Cargo.Yanzu Rustdoc yana kula da takardu daidai gwargwado.
Bayanan API da aka dakatar yanzu ana sanya su azaman takardu na yau da kullun, ba tare da sarrafawa ta musamman ta baya ta hanyar farin-space: pre-wrap ba. Bugu da ƙari, rustdoc ba ya sake missing_doc_code_examples na abubuwan da ke cikin impl, kuma hanyoyi da ayyukan da ke da alaƙa yanzu an raba su a cikin sashin gefe na takardu.Rashin jituwa mai yiwuwa.
Sakin ya ƙunshi canje-canje da dama waɗanda za su iya bayyana a cikin lambar da ba ta dace ba: an gyara tsarin wasu enums na #[repr(Int)] a cikin mawuyacin hali, kuma an kashe wasu simintin da ba su da amfani a cikin Pin. , Gina WebAssembly yanzu ya faɗi akan alamomin da ba a fayyace ba, an sake daidaita sifar #![reexport_test_harness_main] da ba a yi niyya ba, an cire zaɓin -Csoft-float, kuma an ƙara mafi ƙarancin sigar LLVM ta waje zuwa 21. Ga AVR, an canza nau'in c_double zuwa f32, tunda C ninki biyu suna da bit 32 ta tsohuwa akan waɗannan maƙasudai.
source: linux.org.ru
