Rust 1.93

Den næste stabile version af Rust-kompilatoren og sprogstandarden er blevet offentliggjort.

Opdatering af det indbyggede musl-bibliotek til version 1.2.5

Forskellige målplatforme *-linux-musl leveres nu med musl 1.2.5. Dette gælder især statiske musl-samlinger for x86_64, aarch64 og powerpc64le, som tidligere brugte version 1.2.3. Denne opdatering inkluderer flere rettelser og forbedringer, samt en "brydende" ændring, der påvirker Rust-økosystemet.

Den primære motivation for denne opdatering var væsentlige forbedringer i musls DNS-opløsning, som blev introduceret i version 1.2.4 og justeret i 1.2.5. Når der bruges musl til statisk linking, bør det øge pålideligheden af netværksfunktioner i bærbare Linux-binære filer, især ved behandling af store DNS-poster og rekursive navneservere.

Men version 1.2.4 indeholder også en kritisk ændring: fjernelse af flere forældede kompatibilitetssymboler, som blev brugt af libc-kraten på GitHub. En løsning på dette blev udgivet i libc 0.2.146 allerede i juni 2023 (for 2,5 år siden), og vi mener, at det er blevet udbredt nok til, at vi kan foretage ændringer i Rust-målplatformene.

Tilladelse til den globale allokator at bruge TLS

Rust 1.93 justerer de interne mekanismer i den standardbibliotek, så globale allokatorer skrevet i Rust kan bruge std::thread_local! og std::thread::current uden risiko for re-entrancy ved at bruge den systemiske allokator. Flere oplysninger kan findes i dokumentationen til Rust standardbiblioteket.

Cfg-attributter i asm!-linjer

Tidligere, hvis separate dele af den indbyggede samlingssektion krævede betinget kompilering cfg, var det nødvendigt at duplikere hele asm!-blokken. I version 1.93 kan cfg-attributten anvendes på individuelle instruktioner inden for blokken:

asm!( // eller global_asm! eller naked_asm! "nop", #[cfg(target_feature = "sse2")] "nop", // … #[cfg(target_feature = "sse2")] a = const 123, // kun brugt på sse2 );

Oversat til stabilt API:

<[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`

Kilde: linux.org.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster