ОбявСн Π΅ слСдващият стабилСн Ρ€Π΅Π»ΠΈΠ· Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° ΠΈ стандарта Π½Π° Π΅Π·ΠΈΠΊΠ° 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 Π±Π΅Π· риск ΠΎΡ‚ re-entrancy Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСмния Π°Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π² докумСнтацията Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° 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, // only used on 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