Ndryshku 1.96.0

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.
    Rust 1.96.0 rregullon dy dobësi që prekin përdoruesit e regjistrave të palëve të treta. CVE-2026-5223 Lidhur me trajtimin e lidhjeve simbolike brenda tarball-eve të arkave: një paketë keqdashëse nga një regjistër i palës së tretë mund të mbishkruajë memorien e përkohshme të një pakete tjetër nga i njëjti regjistër. Duke filluar me Rust 1.96.0, Cargo refuzon arkivat e arkave që përmbajnë lidhje simbolike. CVE-2026-5222 Ky problem lidhet me normalizimin e URL-ve në regjistrin e rrallë dhe, në rrethana të rralla, mund të rezultojë në dërgimin e një tokeni Cargo në një regjistër keqdashës. Sipas ekipit të Rust, përdoruesit e crates.io nuk preken nga këto probleme.

  • 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

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster