Rust 1.93

Avaldatud järgmine stabiilne Rusti keele kompilaatori ja standardi versioon.

Sisseehitatud musl teegi versiooniuuendus 1.2.5-le.

Erinevad sihtplatvormid *-linux-musl on nüüd varustatud musl 1.2.5-ga. Eelkõige puudutab see musl staatilisi kogusid x86_64, aarch64 ja powerpc64le, mis varem kasutasid versiooni 1.2.3. See uuendus sisaldab mitmeid parandusi ja täiustusi, samuti ühte "purustavat" muudatust, mis mõjutab Rusti ökosüsteemi.

Peamine motiiv selle uuenduse jaoks olid märkimisväärsed parandused musl DNS-resolveris, mis ilmusid versioonis 1.2.4 ja mida täiendati versioonis 1.2.5. Kui kasutada musl staatiliseks linkimiseks, peaks see suurendama Linuxi kaasaskantavate binaarfailide võrgufunktsioonide usaldusväärsust, eriti suure DNS-kirjete ja rekursiivsete nimeserverite töötlemisel.

Kuid versioon 1.2.4 sisaldab ka kriitilist muudatust: mitmete vananenud ühilduvusmärkide eemaldamine, mida kasutas GitHubi libc crate. Selle paranduse väljaandmine toimus libc 0.2.146 versioonis juba juunis 2023 (2,5 aastat tagasi)., ja me arvame, et see on levinud piisavalt, et saaksime teha muudatusi Rusti sihtplatvormides.

Globaalne allocatori lubamine TLS-i kasutamiseks

Rust 1.93 parandab standardteegi sisemisi mehhanisme, lubades Rustis kirjutatud globaalsetel allocatoreil kasutada std::thread_local! ja std::thread::current ilma re-entrancy riskita, kasutades süsteemi allocatoreid. Lisateavet leiate Rusti standardteegi dokumentatsioonist.

cfg atribuudid asm! ridades

Varem tuli, kui sisseehitatud kogumise osad nõudsid tingimuslikku kompileerimist cfg, kogu asm! plokk täielikult dubleerida. Versioonis 1.93 saab cfg atribuuti rakendada individuaalsetele käsudesse plokis:

asm!( // või global_asm! või naked_asm! "nop", #[cfg(target_feature = "sse2")] "nop", // … #[cfg(target_feature = "sse2")] a = const 123, // kasutusel ainult sse2 );

Stabiilse API kategooriasse viidud:

<[MaybeUninit]>::assume_init_drop <[MaybeUninit]>::assume_init_ref` <[MaybeUninit]>::assume_init_mut` <[MaybeUninit]>::write_copy_of_slice` <[MaybeUninit]>::write_clone_of_slice` String::into_raw_parts` Vec::into_raw_parts` ::unchecked_neg` ::unchecked_shl` ::unchecked_shr` ::unchecked_shl` ::unchecked_shr` ::as_array` ::as_array_mut` ::as_array` ::as_array_mut` VecDeque::pop_front_if` VecDeque::pop_back_if` Duration::from_nanos_u128` char::MAX_LEN_UTF8` char::MAX_LEN_UTF16` std::fmt::from_fn` std::fmt::FromFn`

Allikas: linux.org.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster