Herdoila 1.96.0

Argitalpena argitaratu da Herdoila 1.96.0 — Rust programazio-lengoaiaren azken bertsio egonkorra. Eguneratzea kaleratu da. 28 May 2026 urteko; rustup update stable komando estandarra erabiliz instala daiteke. Aldaketa nagusien artean daude core::range-n barruti mota berriak, ereduak bat etortzeko makroen egonkortzea, WebAssembly eraikuntza-portaeraren estutzea eta Cargo-ko bi ahultasunen konponketak.

Aldaketa garrantzitsuak

  • core::range::Range* barruti mota berriak.
    Liburutegi estandarrean barruti mota berriak egonkortu dira: core::range::Range, RangeFrom, RangeInclusive, eta haien iteradoreak. Core::ops-eko mota zaharrek ez bezala, barruti berriek ez dute Iterator zuzenean inplementatzen, baizik eta iteradore bihurtzen dira IntoIterator bidez. Horri esker, barruti hauek kopiatu daitezke, eta hori komenigarria da, adibidez, barruti bat egitura-eremu gisa gordetzean. 0..1 bezalako sintaxiak sortzen ditu barruti mota zaharrak gaur egun, baina hizkuntzaren etorkizuneko bertsio batean mota berrietara migratzea aurreikusten da.

  • assert_matches! eta debug_assert_matches! gehitu dira.
    Makro berriek balio bat eredu jakin batekin bat datorrela egiaztatzeko aukera ematen dute. Kontzeptuan antzekoa da assert!(matches!(…))-ren, baina errore baten kasuan, balioaren arazketa-irudikapen bat inprimatzen da, diagnostikoak sinplifikatuz. Makro hauek ez ziren Prelude-ra gehitu hirugarrenen kutxekin gatazkak saihesteko, beraz, esplizituki inportatu behar dira core edo std-tik.

  • WebAssembly helburuen portaera aldatu da.
    Rustek ez du gehiago --allow-undefined estekatzaileari pasatzen WebAssembly eraikitzeetarako. Definitu gabeko sinboloak errore gisa tratatzen dira orain estekatzean, automatikoki "env" modulutik inportatu beharrean. Horrek eraikuntza-erroreak eta baliogabeko sinbolo-izen batzuk lehenago detektatu beharko lituzke. Behar izanez gero, portaera zaharra desegin daiteke RUSTFLAGS=-Clink-arg=--allow-undefined erabiliz edo inportatutako wasm modulua berariaz zehaztuz #[link(wasm_import_module = "env")] erabiliz.

  • Segurtasun konponketak jaso ditu kargamentuak.
    Rust 1.96.0-k hirugarrenen erregistroen erabiltzaileei eragiten dieten bi ahultasun konpontzen ditu. CVE-2026-5223 Crate tarball-en barruko sinbolo-loturen kudeaketarekin lotuta: hirugarrenen erregistro bateko pakete gaizto batek erregistro bereko beste pakete baten cachea gainidatz dezake. Rust 1.96.0-tik aurrera, Cargo-k sinbolo-loturak dituzten crate artxiboak baztertzen ditu. CVE-2026-5222 Arazo hau URL normalizazioarekin erlazionatuta dago erregistro sakabanatuan eta, kasu bakanetan, Cargo token bat erregistro gaizto batera bidaltzea eragin dezake. Rust taldearen arabera, crates.io erabiltzaileak ez daude arazo hauek eraginda.

  • Hizkuntzaren aldaketak.
    Argitalpenak honako hauek ditu barne: Hainbat konponketa eta hobekuntza txiki: Makroen expr metaaldagaiak cfg-ra pasatzea baimendu da, tupla adierazpenetan inoiz ez diren motako bihurtzea zuzendu da, funtzio argumentuetarako mota inferentzia aholku okerren kasu arraroak konpondu dira, s390x bektore erregistroen euskarria gehitu da lerroko muntaketan, eta ManuallyDrop konstanteak txantiloi gisa berriro baimendu dira —honek Rust 1.94.0-n sartutako erregresio bat konpontzen du.

  • Konpiladore eta plataformetan izandako aldaketak.
    For LinuxLotura-erlaxazioaren euskarria gaitu da LoongArch helburuetarako — kodea zabaldu ondoren trantsizio eta dei batzuk errazten dituen lotura-optimizazio bat. riscv64gc-unknown-fuchsia-rentzat, oinarrizko konfigurazioa RVA22 profilera eguneratu da, bektore-luzapenetarako euskarriarekin.

  • Liburutegi estandarren eguneraketak.
    Zero ez diren zenbaki osoen barrutietan iteratzeko euskarria gehitu da. SGX-n ToSocketAddr bidez ostalarien helbideen kudeaketa alferra ere konpondu da, eta "irakurgarri/idazgarri" memoriaren definizioa argitu da dokumentazioan eta barne-kontratuetan: nulu erakuslea definizio orokorretik kendu da, eta salbuespenak orain metodo espezifikoetarako bereizita zehazten dira.

  • API egonkortuak.
    Interfaze egonkortuen artean assert_matches!, debug_assert_matches!, From-en inplementazioak daude. AssertUnwindSafe-rentzat , LazyCell eta LazyLock , baita core::range-ko barruti mota eta iteratzaile berriak ere, besteak beste, Range, RangeFrom, RangeToInclusive eta haien iteratzaileak.

  • Karga: Aldaketak mendekotasunetan eta dokumentazioan.
    Mendekotasun batek orain Git biltegi bat eta erregistro alternatibo bat zehaztu ditzake: Git bertsioa lokalean erabiliko da, eta erregistro bertsioa argitaratzean erabiliko da, crates.io-rekin gertatzen den antzera. Cargo konfigurazioan target.'cfg(..)'.rustdocflags-en laguntza ere gehitu da.

  • Rustdoc-ek orain dokumentazioa zehatzago kudeatzen du.
    API ohar zaharkituak dokumentazio arrunt gisa errendatzen dira orain, aurreko white-space: pre-wrap bidezko prozesamendu berezirik gabe. Gainera, rustdoc-ek ez ditu gehiago impl barruko elementuen missing_doc_code_examples ezabatzen, eta metodoak eta lotutako funtzioak dokumentazioaren alboko barran bereizita daude orain.

  • Balizko bateraezintasunak.
    Argitalpenak kode ez-estandarrean ager daitezkeen hainbat aldaketa ditu: #[repr(Int)] enum batzuen diseinua konpondu da muturreko kasuetan, eta Pin-en tamainagabetutako bihurketa alferrikako batzuk desgaitu dira. , WebAssembly build-ak orain huts egiten dute definitu gabeko sinboloetan, ustekabean egonkortutako #![reexport_test_harness_main] atributua berriro ere funtzio-murriztapen mugatua izan da, -Csoft-float aukera kendu da eta kanpoko LLVM bertsio minimoa 21era igo da. AVRrako, c_double mota f32ra aldatu da, C double-ak helburu hauetan lehenespenez 32 bitekoak baitira.

Iturria: linux.org.ru

Erosi hosting fidagarria DDoS babesa duten guneetarako, VPS VDS zerbitzariak 🔥 Erosi webguneentzako ostatu fidagarria DDoS babesarekin, VPS VDS zerbitzariak | ProHoster