Rust 1.93

Објављена је следећа стабилна верзија компајлера и стандарда програмског језика Rust.

Ажурирање уграђене библиотеке musl на верзију 1.2.5

Различите целне платформе *-linux-musl сада се испоручују са musl 1.2.5. То углавном укључује статичке изградње musl за x86_64, aarch64 и powerpc64le, које су претходно користиле верзију 1.2.3. Овај окончање укључује неколико исправки и побољшања, као и една "ломљива" промена, која се тиче екосистема Rust.

Основна мотивација за ово ажурирање биле су значајна побољшања у DNS резолверу musl, која су се појавила у верзији 1.2.4 и додатно обрађена у 1.2.5. Када се musl користи за статичко линковање, то би требало да повећа поузданост мрежних функција преносивих бинарних датотека за Linux, посебно када се ради са великим DNS записима и рекурсивним серверима имена.

Међутим, верзија 1.2.4 такође садржи критичну промену: уклањање неколико застарелих симбола компатибилности које је користио crate libc на GitHub-у. Исправка за то била је објављена у libc 0.2.146 још у јуну 2023. године (пре 2,5 године), и сматрамо да је она довољно широко распрострањена да бисмо могли увести промене на целне платформе Rust.

Дозволити глобалном алокатору да користи TLS

Rust 1.93 исправља унутрашње механизме стандардне библиотеке, омогућавајући глобалним алокаторима написаним на Rust да користе std::thread_local! и std::thread::current без ризика од ре- انہранси користећи системски алокатор. Детаљи се могу наћи у документацији стандардне библиотеке Rust.

cfg атрибути у asm! редовима

Раније, ако су поједине делове секције уграђене изградње захтевале условно компилацију cfg, било је потребно дуплирати цео блок asm! у целини. У верзији 1.93 атрибут cfg се може применити на појединачне инструкције унутар блока:

asm!( // or global_asm! or naked_asm! "nop", #[cfg(target_feature = "sse2")] "nop", // … #[cfg(target_feature = "sse2")] a = const 123, // само коришћен на sse2 );

Прелази у категорију стабилног 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`

Izvor: linux.org.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster