Rust 1.66 Whakaputa Reo Papatono

Ko te tukunga o te reo hootaka kaupapa whanui Rust 1.66, i hangaia e te kaupapa Mozilla, engari kua whakawhanakehia inaianei i raro i te maru o te whakahaere kore-painga motuhake Rust Foundation, kua whakaputaina. Ko te reo e arotahi ana ki te haumaru mahara me te whakarato i nga huarahi ki te whakatutuki i te whakarara nui i roto i nga mahi mahi, me te karo i te whakamahi o te kaikohi paru me te wa mahi (ka whakahekehia te wa whakahaere ki te timatanga me te tiaki i te whare pukapuka paerewa).

Ko nga tikanga whakahaere mahara a Rust ka whakawātea i te kaiwhakawhanake mai i nga hapa raweke o te atatohu me te whakamarumaru mai i nga raru ka puta mai i te raweke mahara taumata-iti, penei i te urunga kore-kore, te kore tohu tohu kore, te paopao, me era atu. Ki te tohatoha whare pukapuka, ki te whakarite i te huihuinga me te whakahaere i nga whakawhirinakitanga, kei te whakawhanake te kaupapa i te kaiwhakahaere kete Uta. Kei te tautokohia te putunga crates.io mo te manaaki whare pukapuka.

Ka whakamanahia te haumaru mahara i roto i te Rust i te wa whakahiato ma te arowhai tohutoro, te whai mana o te taonga, te whakaaro mo te oranga o te ahanoa (scoping), me te arotake urunga mahara i te wa whakahaere. Ko te waikura hoki he whakamarumaru mai i nga puhaketanga integer, me arawhiti nga uara taurangi i mua i te whakamahi, he pai ake te whakahaere hapa i roto i te whare pukapuka paerewa, ka whakamahi taunoa i te kaupapa o nga tohutoro koretake me nga taurangi, me te tuku patopato pateko kaha hei whakaiti i nga hapa arorau.

Nga mahi hou:

  • I roto i nga tatauranga me nga tohu tauoti (te huanga "#[repr(Int)]"), ka whakaaetia te tohu tohu mo te whakawehe (te tau o te whiringa i roto i te tatau), ahakoa he mara kei roto i te tatau. #[repr(u8)] enum Foo { A(u8), # discriminant 0 B(i8), # discriminant 1 C(bool) = 42, # discriminant 42 }
  • Kua taapirihia te matua::tohu::black_box mahi, ka whakahoki noa i te uara kua riro. Na te mea e whakapono ana te kaipakihi he mahi motuhake tetahi mahi, ka taea te whakamahi i te mahi black_box ki te whakakore i te arotautanga a te kaikoipi i nga koropiko i te wa e mahi ana i nga whakamatautau mahi waehere, i te wa e tirotirohia ana e te miihini i hangaia te waehere miihini (kia kore ai e whakaaro te kaikoipi kaore e taea te whakamahi me te tango. te reira). Hei tauira, i roto i te tauira i raro nei, ko te tohu black_box(v.as_ptr()) ka aukati i te kaikoipi i te whakaaro kaore te vector v i te whakamahia. whakamahi std::hint::black_box; fn pana_cap(v: &mut Vec) { for i in 0..4 { v.pana(i); black_box(v.as_ptr()); }}
  • Ka tukuna e te kaiwhakahaere kete "uta" te tono "tango", ka taea e koe te tango i nga whakawhirinaki mai i te whakaaturanga Cargo.toml mai i te raina whakahau.
  • Kua nekehia tetahi waahanga hou o te API ki te waahanga pumau, tae atu ki nga tikanga me nga whakatinanatanga o nga ahuatanga kua whakapumautia:
    • proc_macro::Span::source_text
    • u*::{kua tohua_add_signed, overflowing_add_signed, saturating_add_signed, wrapping_add_signed}
    • i*::{kua tohua_add_unsigned, overflowing_add_unsigned, saturating_add_unsigned, wrapping_add_unsigned}
    • i*::{Takina_sub_kaore i haina, overflowing_sub_unsigned, saturating_sub_unsigned, wrapping_sub_unsigned}
    • BTreeSet::{tuatahi, whakamutunga, pop_tua, pop_last}
    • BTreeMap::{uara_matua_tuatahi, uara_matua_whakamutunga, te_urunga_tuatahi, te_urunga_whakamutunga, te_tohunga_tua, te_whakamutunga}
    • Tāpirihia nga whakatinanatanga AsFd mo nga momo raka stdio ina whakamahi ana i te WASI.
    • impl TryFrom > mo Pouaka<[T; N]>
    • matua::tohu::black_box
    • Roa::try_from_secs_{f32,f64}
    • Kōwhiringa:: wetewetehia
    • std::os::fd
  • Ko te whakamahi i nga awhe "..X" me "..=X" ka whakaaetia i roto i nga tauira.
  • I te wa e whakahiato ana i te pito o mua o te kaitoi rustc me te tuara o te LLVM, ka whakamahia nga tikanga arotautanga LTO (Hoahoa Waa Hononga) me te BOLT (Rauhanga Rua me te Taputapu Tahora), e taea ai te whakanui ake i te mahi o te waehere hua me te whakaiti i te kai mahara.
  • Ko te taumata tuatoru o te tautoko kua whakatinanahia mo nga papaaapapa armv5te-none-eabi me thumbv5te-none-eabi. Ko te taumata tuatoru ko te tautoko taketake, engari kaore he whakamatautau aunoa, te whakaputa i nga hanganga mana, me te tirotiro mena ka taea te hanga te waehere.
  • He tautoko taapiri mo te hono ki nga whare pukapuka ao macOS.

I tua atu, ka taea e tatou te kite i te whakaurunga o te pito o mua o te kaikoipi reo Rust (gccrs) ki te turanga waehere GCC. Ko te pito o mua kei roto i te peka GCC 13, ka tukuna i te marama o Mei 2023. Ka timata i te GCC 13, ka taea te whakamahi i nga taputapu GCC taketake ki te whakahiato i nga kaupapa i roto i te reo Rust me te kore e hiahia ki te whakauru i te rustc compiler, i hangaia ma te whakamahi i nga whanaketanga LLVM. Ko te whakatinanatanga o te GCC 13 o Rust he putanga beta, kaore e taea te taunoa.

Source: opennet.ru

Tāpiri i te kōrero