Mae'r datganiad sefydlog nesaf o'r crynhoydd a'r safon iaith Rust wedi'i gyhoeddi.
Diweddaru'r llyfrgell musl adeiledig i fersiwn 1.2.5
Mae amryw o lwyfannau targed *-linux-musl bellach yn dod gyda musl 1.2.5. Mae hyn yn effeithio'n bennaf ar yr adeiladwaith musl statig ar gyfer x86_64, aarch64, a powerpc64le, a oedd yn defnyddio fersiwn 1.2.3 yn flaenorol. Mae'r diweddariad hwn yn cynnwys nifer o atgyweiriadau a gwelliannau, yn ogystal ag un newid “torri” sy’n effeithio ar ecosystem Rust.
Y prif gymhelliant dros y diweddariad hwn oedd y gwelliannau sylweddol i'r datrysydd DNS musl a gyflwynwyd yn fersiwn 1.2.4 ac a fireinio ymhellach yn 1.2.5. Wrth ddefnyddio musl ar gyfer cysylltu statig, dylai hyn wella dibynadwyedd swyddogaethau rhwydweithio mewn ffeiliau deuaidd cludadwy. Linux, yn enwedig wrth weithio gyda chofnodion DNS mawr a gweinyddion enwau dychweliadol.
Fodd bynnag, mae fersiwn 1.2.4 hefyd yn cynnwys newid critigol: cael gwared ar nifer o symbolau cydnawsedd sydd wedi darfod a ddefnyddir gan y crât libc ar GitHub. Atgyweiriad ar gyfer hyn cafodd ei ryddhau yn libc 0.2.146 ym mis Mehefin 2023 (2,5 mlynedd yn ôl), ac rydym yn credu ei fod wedi lledaenu'n ddigon eang fel y gallwn wneud newidiadau i lwyfannau targed Rust.
Caniatáu i'r dyrannwr byd-eang ddefnyddio TLS
Mae Rust 1.93 yn addasu tu mewn y llyfrgell safonol, gan ganiatáu i ddyranwyr byd-eang a ysgrifennwyd yn Rust ddefnyddio std::thread_local! a std::thread::current heb y risg o ail-fynediad trwy ddefnyddio'r dyrannwr system. Gellir dod o hyd i fanylion yn nogfennaeth llyfrgell safonol Rust.
priodoleddau cfg mewn llinellau asm!
Yn flaenorol, os oedd angen llunio cfg amodol ar rannau unigol o adran gydosod fewnol, roedd yn rhaid dyblygu'r bloc asm! cyfan. Yn fersiwn 1.93, gellir cymhwyso'r priodoledd cfg i gyfarwyddiadau unigol o fewn y bloc:
asm!( // neu global_asm! neu naked_asm! "nop", #[cfg(target_feature = "sse2")] "nop", // ... #[cfg(target_feature = "sse2")] a = const 123, // dim ond yn cael ei ddefnyddio ar sse2);
Mae'r APIs canlynol wedi cael eu symud i'r categori sefydlog:
<[EfallaiUninit ]>::assume_init_drop <[EfallaiUninit ]>::assess_init_ref` <[EfallaiUninit ]>::assess_init_mut` <[EfallaiUninit ]>::ysgrifennu_copi_o_ddeisen` <[EfallaiUninitio ]>::ysgrifennu_clôn_o_slice` Llinyn::i_rannau_amrw` Vec::i_rannau_amrw` ::heb_wirio_neg` ::heb_wirio_shl` ::heb_wirio_sgriw` ::heb_wirio_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` Hyd::from_nanos_u128` char::MAX_LEN_UTF8` char::MAX_LEN_UTF16` std::fmt::from_fn` std::fmt::FromFn`
Ffynhonnell: linux.org.ru
