Rust 1.93

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

Sisseehitatud musl teegi versiooni uuendamine 1.2.5-le

Erinevad sihttellimusplatvormid *-linux-musl kaasnevad nüüd musl 1.2.5. See kehtib peamiselt musl staatilistele kogumitele x86_64, aarch64 ja powerpc64le, mis kasutasid varem versiooni 1.2.3. See uuendus sisaldab mitmeid parandusi ja täiustusi, samuti üht „katkestavat“ muudatust, mis mõjutab Rusti ökosüsteemi.

Selle uuenduse peamine motivatsioon olid olulised täiustused musl DNS-resolutoris, mis tulid välja versioonis 1.2.4 ja said täiustatud versioonis 1.2.5. Musli kasutamine staatilise linkimise jaoks peaks parandama Linuxi ülekandetegevuste usaldusväärsust, eriti suurte DNS-kirjete ja rekursiivsete nimiserveritega töötamisel.

Kuid versioon 1.2.4 sisaldab samuti kriitilist muudatust: mitme vananenud ühilduvussümboli eemaldamine, mida kasutas crates libc GitHubis. Parandus selle jaoks välja anti libc 0.2.146 juba juunis 2023 (2,5 aastat tagasi), ning me usume, et see on levinud piisavalt laialdaselt, et saaksime teha muutusi Rusti sihttellimusplatvormides.

GlobalAllocatori lubamine kasutada TLS-i

Rust 1.93 korrigeerib standardteegi sisemehhanisme, võimaldades Rustis kirjutatud globaalsetel allocatoritel kasutada std::thread_local! ja std::thread::current ilma re-entrancy riskita süsteemi allocatorite kasutamise kaudu. Lisateavet leiate Rusti standardteegi dokumentatsioonist.

cfg atribuute asm! ridade puhul

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

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

Stabiilse API tasemele on viidatud:

<[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 hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster