Rust 1.93

Megjelent a Rust nyelv fordítójának és szabványának következő stabil verziója.

A beépített musl könyvtár frissítése 1.2.5-ös verzióra.

Különböző célplatformok *-linux-musl mostantól musl 1.2.5-tel érkeznek. Ez elsősorban az x86_64, aarch64 és powerpc64le statikus musl összesítéseket érinti, amelyek korábban 1.2.3-as verziót használtak. Ez a frissítés tartalmaz több javítást és fejlesztést, valamint egy „törést okozó” változást, amely a Rust ökoszisztémát érinti.

Ennek a frissítésnek a fő motivációja a musl DNS-értelmezőjében a 1.2.4-es verzióban bekövetkezett jelentős fejlesztések voltak, amelyeket a 1.2.5-ben tovább finomítottak. A musl statikus linkelés használatakor ez javítja a Linux hordozható bináris fájljainak hálózati funkcióinak megbízhatóságát, különösen nagy DNS-rekordok és rekurzív névszerverek használatakor.

A 1.2.4-es verzió azonban tartalmazza a kritikus változást: több elavult kompatibilitási szimbólum eltávolítása, amelyet a libc crate használt a GitHubon. A javítást júniusban, 2023-ban adták ki a libc 0.2.146 verziójában (2,5 éve), és úgy gondoljuk, hogy ez széles körben elterjedt, hogy a Rust célplatformjain be tudjunk vezetni változtatásokat.

A globális allokátor TLS használatának engedélyezése

A Rust 1.93 korrigálja a standard könyvtár belső mechanizmusait, lehetővé téve a Rust nyelven írt globális allokátorok számára, hogy a std::thread_local! és a std::thread::current használatával re-entrancy kockázata nélkül használják a rendszer allokátort. Részletek találhatók a Rust standard könyvtár dokumentációjában.

A cfg attribútumok az asm! sorokban

Korábban, ha a beágyazott összesítés egyes részei feltételes fordítást igényeltek, az egész asm! blokkot duplikálni kellett. Az 1.93-as verzióban a cfg attribútumot az egyes utasításokra lehet alkalmazni a blokkban:

asm!( // vagy global_asm! vagy naked_asm! "nop", #[cfg(target_feature = "sse2")] "nop", // … #[cfg(target_feature = "sse2")] a = const 123, // csak sse2 esetén használt );

A stabil API szintre került:

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

Forrás: linux.org.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster