ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π΅ слСдващият стабилСн Ρ€Π΅Π»ΠΈΠ· Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° ΠΈ стандарта Π½Π° Π΅Π·ΠΈΠΊΠ° 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.

ПозволяванС на глобалния allocator да използва TLS

Rust 1.93 ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, позволявайки Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ‚Π΅ Π°Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ΠΈ, написани Π½Π° Rust, Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ std::thread_local! ΠΈ std::thread::current Π±Π΅Π· риск ΠΎΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Π»ΠΈΠ·Π°Π½Π΅ Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° систСмния Π°Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π² докумСнтацията Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Rust.

АтрибутитС cfg Π² asm! Ρ€Π΅Π΄ΠΎΠ²Π΅

По-Ρ€Π°Π½ΠΎ, Π°ΠΊΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ части ΠΎΡ‚ сСкцията Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½Π°Ρ‚Π° сборка изискваха условна компилация cfg, сС налагашС Π΄Π° Π΄ΡƒΠ±Π»ΠΈΡ€Π°Ρ‚Π΅ цСлия Π±Π»ΠΎΠΊ asm! напълно. Π’ вСрсия 1.93 Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΡŠΡ‚ cfg ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π° към ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ инструкции Π² Π±Π»ΠΎΠΊΠ°:

asm!( // ΠΈΠ»ΠΈ global_asm! ΠΈΠ»ΠΈ 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`

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster