Den nÀsta stabila versionen av Rust-kompilatorn och sprÄket har publicerats.
Uppdatering av det inbyggda musl-biblioteket till version 1.2.5
Olika mÄlplattformar *-linux-musl levereras nu med musl 1.2.5. Detta gÀller frÀmst statiska musl-byggen för x86_64, aarch64 och powerpc64le, som tidigare anvÀnde version 1.2.3. Denna uppdatering inkluderar flera buggfixar och förbÀttringar, samt en "brytande" förÀndring som pÄverkar Rust-ekosystemet.
Huvudmotivet för denna uppdatering var betydande förbÀttringar i musls DNS-resolver, som infördes i version 1.2.4 och vidareutvecklades i 1.2.5. Vid anvÀndning av musl för statisk lÀnkning bör detta öka tillförlitligheten för nÀtverksfunktioner i bÀrbara Linux-binÀrer, sÀrskilt vid arbete med stora DNS-poster och rekursiva namnservrar.
Men version 1.2.4 innehÄller ocksÄ en kritisk förÀndring: borttagning av flera förÄldrade kompatibilitetssymboler som anvÀndes av libc-kitet pÄ GitHub. En fix för detta slÀpptes i libc 0.2.146 redan i juni 2023 (för 2,5 Är sedan), och vi anser att den har spridit sig tillrÀckligt brett för att vi ska kunna göra Àndringar i Rusts mÄlplattformar.
TillÄter global allokerare att anvÀnda TLS
Rust 1.93 justerar interna mekanismer i standardbiblioteket, vilket gör att globala allokerare skrivna i Rust kan anvÀnda std::thread_local! och std::thread::current utan risk för re-entrancy genom att anvÀnda systemallokerare. Mer information finns i dokumentationen för Rusts standardbibliotek.
Cfg-attribut i asm!-rader
Tidigare, om enskilda delar av avsnittet för inbyggd byggnad krÀvde villkorlig kompilering cfg, var man tvungen att duplicera hela asm!-blocket. I version 1.93 kan cfg-attributet tillÀmpas pÄ enskilda instruktioner inom blocket:
asm!( // eller global_asm! eller naked_asm! "nop", #[cfg(target_feature = "sse2")] "nop", // ⊠#[cfg(target_feature = "sse2")] a = const 123, // anvÀnds endast pÄ sse2 );
Har överförts till den stabila API-graden:
<[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`
KĂ€lla: linux.org.ru
