Publikimi Ă«shtĂ« publikuar Ndryshku 1.96.0 â versioni mĂ« i fundit i qĂ«ndrueshĂ«m i gjuhĂ«s sĂ« programimit Rust. PĂ«rditĂ«simi Ă«shtĂ« publikuar. 28 Maj vit 2026; mund tĂ« instalohet duke pĂ«rdorur komandĂ«n standarde rustup update stable. Ndryshimet kryesore pĂ«rfshijnĂ« lloje tĂ« reja diapazoni nĂ« core::range, stabilizimin e makros sĂ« pĂ«rputhjes sĂ« modeleve, forcimin e sjelljes sĂ« ndĂ«rtimit tĂ« WebAssembly dhe rregullime pĂ«r dy dobĂ«si nĂ« Cargo.
Ndryshime të mëdha
Lloje të reja diapazoni core::range::Range*.
Llojet e reja të diapazonit janë stabilizuar në bibliotekën standarde: core::range::Range, RangeFrom, RangeInclusive dhe iteratorët e tyre shoqërues. Ndryshe nga llojet e vjetra nga core::ops, diapazonet e reja nuk e zbatojnë Iteratorin direkt, por konvertohen në një iterator nëpërmjet IntoIterator. Kjo lejon që këto diapazone të jenë të kopjueshme, gjë që është e përshtatshme, për shembull, kur ruhet një diapazon si një fushë strukture. Sintaksa si 0..1 aktualisht krijon llojet e vjetra të diapazonit, por është planifikuar të migrohet në llojet e reja në një version të ardhshëm të gjuhës.U shtuan assert_matches! dhe debug_assert_matches!.
Makrot e reja ju lejojnĂ« tĂ« kontrolloni nĂ«se njĂ« vlerĂ« pĂ«rputhet me njĂ« model tĂ« caktuar. Kjo Ă«shtĂ« e ngjashme nĂ« koncept me assert!(matches!(âŠ)), por nĂ« rast tĂ« njĂ« gabimi, shtypet njĂ« pĂ«rfaqĂ«sim debugimi i vlerĂ«s, duke thjeshtuar diagnostikimin. KĂ«to makro nuk u shtuan nĂ« Prelude pĂ«r tĂ« shmangur konfliktet me formatet e njohura tĂ« palĂ«ve tĂ« treta, kĂ«shtu qĂ« ato duhet tĂ« importohen nĂ« mĂ«nyrĂ« tĂ« qartĂ« nga bĂ«rthama ose std.Ndryshoi sjellja e objektivave tĂ« WebAssembly.
Rust nuk ia kalon më --allow-undefined lidhësit për ndërtimet WebAssembly. Simbolet e padefinuara tani trajtohen si gabime gjatë lidhjes, në vend që të konvertohen automatikisht në importe nga moduli "env". Kjo duhet të kapë gabimet e ndërtimit dhe emrat e pavlefshëm të simboleve më parë. Sjellja e vjetër mund të rikthehet, nëse është e nevojshme, duke përdorur RUSTFLAGS=-Clink-arg=--allow-undefined ose duke specifikuar në mënyrë të qartë modulin wasm të importuar duke përdorur #[link(wasm_import_module = "env")].Ngarkesa ka marrë rregullime sigurie.
Ndryshimet në gjuhë.
Publikimi përfshin: Disa rregullime dhe përmirësime të vogla: U lejua kalimi i metavariablave expr të makrove në cfg, u korrigjua hedhja e tipit "never-type casting" në shprehjet tuple, u rregulluan rastet e rralla të sugjerimeve të gabuara të nxjerrjes së tipit për argumentet e funksionit, u shtua mbështetja për regjistrat vektorialë s390x në asamblenë inline dhe u rilejuan konstantet ManuallyDrop si shabllone - kjo rregullon një regres të prezantuar në Rust 1.94.0.Ndryshimet në kompilues dhe platforma.
Për LinuxMbështetja për relaksimin e lidhjeve është aktivizuar për objektivat LoongArch - një optimizim lidhjesh që thjeshton disa tranzicione dhe thirrje pas vendosjes së kodit. Për riscv64gc-unknown-fuchsia, konfigurimi bazë është përditësuar në profilin RVA22 me mbështetje për zgjerimet vektoriale.Përditësimet standarde të bibliotekës.
ĂshtĂ« shtuar mbĂ«shtetje pĂ«r iterimin mbi diapazone numrash tĂ« plotĂ« jo-zero. ĂshtĂ« rregulluar gjithashtu edhe trajtimi i ngadaltĂ« i adresave tĂ« hostit nĂ« SGX nĂ«pĂ«rmjet ToSocketAddr, dhe pĂ«rkufizimi i memories "e lexueshme/e shkrueshme" Ă«shtĂ« sqaruar nĂ« dokumentacion dhe kontrata tĂ« brendshme: treguesi null Ă«shtĂ« hequr nga pĂ«rkufizimi i pĂ«rgjithshĂ«m, dhe pĂ«rjashtimet tani specifikohen veçmas pĂ«r metoda specifike.API tĂ« stabilizuara.
Ndër ndërfaqet e stabilizuara janë assert_matches!, debug_assert_matches!, implementimet e From për AssertUnwindSafe , LazyCell dhe LazyLock , si dhe lloje të reja diapazoni dhe iteratorë nga core::range, duke përfshirë Range, RangeFrom, RangeToInclusive dhe iteratorët e tyre.Ngarkesa: Ndryshime në varësi dhe dokumentacion.
NjĂ« varĂ«si tani mund tĂ« specifikojĂ« si njĂ« depo Git ashtu edhe njĂ« regjistĂ«r alternativ: versioni i Git do tĂ« pĂ«rdoret lokalisht dhe versioni i regjistrit do tĂ« pĂ«rdoret gjatĂ« publikimit, ngjashĂ«m me sjelljen me crates.io. ĂshtĂ« shtuar gjithashtu mbĂ«shtetje pĂ«r target.'cfg(..)'.rustdocflags nĂ« konfigurimin e Cargo.Rustdoc tani e trajton dokumentacionin mĂ« saktĂ«.
Shënimet e API-t të vjetruara tani paraqiten si dokumentacion i rregullt, pa përpunimin e mëparshëm special nëpërmjet hapësirës së bardhë: pre-wrap. Për më tepër, rustdoc nuk shfaq më missing_doc_code_examples për elementët brenda impl, dhe metodat dhe funksionet e lidhura tani janë të ndara në shiritin anësor të dokumentacionit.Papajtueshmëri të mundshme.
Versioni përmban disa ndryshime që mund të shfaqen në kodin jo-standard: paraqitja e disa numrave #[repr(Int)] është rregulluar në raste ekstreme, dhe disa kastime të padobishme të pamasëzuara në Pin janë çaktivizuar. Ndërtimet e WebAssembly tani rrëzohen në simbole të padefinuara, atributi #![reexport_test_harness_main] i stabilizuar aksidentalisht është riaktivizuar, opsioni -Csoft-float është hequr dhe versioni minimal i jashtëm LLVM është rritur në 21. Për AVR, lloji c_double është ndryshuar në f32, meqenëse C double janë 32-bit si parazgjedhje në këto objektiva.
Burimi: linux.org.ru
