Den næste stabile udgivelse af Rust-compileren og sprogstandarden er blevet udgivet.
Opdatering af det indbyggede musl-bibliotek til version 1.2.5
Diverse *-linux-musl målplatforme leveres nu med musl 1.2.5. Dette påvirker primært de statiske musl-builds til x86_64, aarch64 og powerpc64le, som tidligere brugte version 1.2.3. Denne opdatering inkluderer adskillige rettelser og forbedringer, samt én "brydende" ændring, der påvirker Rust-økosystemet.
Den primære motivation for denne opdatering var betydelige forbedringer af musl DNS-resolveren, introduceret i version 1.2.4 og yderligere raffineret i 1.2.5. Når musl bruges til statisk linkning, burde dette forbedre pålideligheden af netværksfunktioner i bærbare Linux-binære filer, især når man arbejder med store DNS-poster og rekursive navneservere.
Version 1.2.4 indeholder dog også kritisk forandringFjernelse af adskillige forældede kompatibilitetssymboler, der bruges af libc crate på GitHub. Rettelse til dette. blev udgivet i libc 0.2.146 tilbage i juni 2023 (for 2,5 år siden), og vi mener, at det har spredt sig bredt nok til, at vi kan foretage ændringer på Rusts målplatforme.
Tillader den globale allokator at bruge TLS
Rust 1.93 justerer standardbibliotekets interne funktioner, hvilket tillader globale allokatorer skrevet i Rust at bruge std::thread_local! og std::thread::current uden risiko for genindtrængen ved at bruge systemallokatoren. Detaljer kan findes i dokumentationen til Rusts standardbibliotek.
cfg-attributter i asm-linjer!
Tidligere skulle hele asm!-blokken duplikeres, hvis individuelle dele af en inline-assembliesektion krævede betinget cfg-kompilering. I version 1.93 kan cfg-attributten anvendes på individuelle instruktioner i blokken:
asm!( // eller global_asm! eller naked_asm! "nop", #[cfg(target_feature = "sse2")] "nop", // ... #[cfg(target_feature = "sse2")] a = const 123, // bruges kun på sse2);
Følgende API'er er blevet flyttet til den stabile kategori:
<[MåskeUninit ]>::assume_init_drop <[MåskeUninit ]>::assume_init_ref` <[MåskeUninit ]>::assume_init_mut` <[MåskeUninit ]>::skriv_kopi_af_slice` <[MåskeUninit ]>::write_clone_of_slice` String::into_raw_parts` Vec::into_raw_parts` ::unchecked_neg` ::unchecked_shl` ::unchecked_shr` ::unchecked_shl` ::unchecked_shr` <[T]>::as_array` <[T]>::as_array_mut` <*const [T]>::as_array` <*mut [T]>::as_array_mut` VecDeque::pop_front_if` VecDeque::pop_back_if` Varighed::from_nanos_u128` char::MAX_LEN_UTF8` char::MAX_LEN_UTF16` std::fmt::from_fn` std::fmt::FromFn`
Kilde: linux.org.ru
