Rust 1.38 Whakaputa Reo Papatono

whakaputaina te tuku reo hootaka punaha Rust 1.38, i hangaia e te kaupapa Mozilla. E aro ana te reo ki te haumaru mahara, e whakarato ana i te whakahaere mahara aunoa, me te whai huarahi ki te whakatutuki i te whakarara mahi teitei me te kore e whakamahi i te kaikohi paru, i te wa whakahaere ranei.

Ma te whakahaere mahara aunoa a Rust ka wetekina te kaiwhakawhanake mai i te raweke i te atatohu me te whakamarumaru i nga raru ka puta mai i te raweke mahara taumata-iti, penei i te uru mahara kore-muri, te kore tohu tohu kore, te paopao, me era atu. Kei te whakawhanakehia he kaiwhakahaere mokihi hei tohatoha whare pukapuka, hei whakarite i te huihuinga me te whakahaere i nga whakawhirinakitanga a te kaupapa. utanga, ka taea e koe te tiki i nga whare pukapuka e hiahiatia ana mo te kaupapa i te paato kotahi. Ka tautokohia he putunga hei manaaki i nga whare pukapuka crates.io.

Main nga mahi auaha:

  • I taapirihia he aratau whakahiato paipa (pipelined), ka timata te hanga o te kete kaata ti'aturi i te wa e waatea ana te metadata whakawhirinaki, me te kore e tatari kia oti tana whakahiato. I te wa e whakahiato ana i te kete, kaore koe e hiahia kia whakahiatohia nga whakawhirinakitanga katoa me tautuhi koe i nga metadata, kei roto ko nga rarangi momo, whakawhirinaki, me nga taonga kaweake. Ko te metadata ka watea mai i te wa o te mahi whakahiato, no reira ka taea te whakahiato i nga kohinga hono i mua atu. I te wa e hanga ana i nga kohinga kotahi, kaore te aratau e whakaarohia ana e pa ki te mahi, engari ki te kapi te hanga i nga kohinga me nga whakawhirinakitanga peka, ka taea te whakaiti i te waa hanga ma te 10-20%;
  • Ka whakarite kia kitea he he te whakamahi i nga mahi std::mem::kare i timata и std::mem::kore. Hei tauira, ko te std::mem::uninitialized he watea mo te hanga tere i nga hurangi, engari ka pohehe i te kaitoi na te mea kua arawhitihia, engari i te mea ka noho tonu te uara kaore i te maarama. Kua tohua kētia te mahi mem::kare i timatahia hei whakakore, ka tūtohutia kia whakamahia he momo takawaenga. Te Waeine pea. Mo te mem::zeroed, ka raru pea tenei mahi ki nga momo e kore e whakaae ki nga uara kore.

    Hei awhina i te tautuhi i te whanonga kaore i tautuhia, ka taapirihia e te tukunga hou he haki ki te kaitoi ka kitea etahi raru ki te mem::uninitialized mem::zeroed ranei. Hei tauira, ka puta he hapa i te wa e ngana ana koe ki te whakamahi i te mem::uninitialized or mem::zeroed me nga momo &T me te Pouaka‹T›, e tohu ana i nga ahanoa atatohu e kore e whakaae ki nga uara kore;

  • Ko te huanga “#[kua whakakorehia]” kua whakawhänuihia kia taea ai te tohu mookai pouaka kua tawhitotia, kua whakaritea kia mukua a meake nei. Mai i te Rust 1.38, ka taea hoki te whakamahi i tenei huanga mo nga tonotono;
  • Kua taapirihia te kaha ki te whakamahi i te huanga "#[global_allocator]" i roto i nga waahangaroto;
  • He waahanga taapiri std::any::type_name, ka taea e koe te kimi i te ingoa o te momo, ka whai hua mo nga kaupapa patuiro. Hei tauira, i te wa e mahia ana te papatono ka kitea e koe he aha te momo i kiia ai te mahi:

    fn gen_value‹T: Taunoa>() -› T {
    println!("Kei te timata i tetahi tauira o {}", std::any::type_name::‹T›());
    Taunoa::taunoa()
    }

    fn matua() {
    kia _: i32 = gen_value(); # "i32" ka taia
    kia _: String = gen_value(); # ka tā "toha::string::String"
    }

  • Nga mahi roa o te whare pukapuka paerewa:
    • slice::{concat, connect, join} ka taea te tango i te uara &[T] hei taapiri atu ki te &T;
    • "*const T" me "*mut T" inaianei ka whakatinanahia te tohu::Wetea;
    • "Arc‹[T]›" me "Rc‹[T]›" ka whakatinana inaianei FromIterator‹T›;
    • iter::{StepBy, Peekable, Take} inaianei ka whakatinana DoubleEndedIterator.
    • ascii :: EscapeDefault ka whakamahi Clone me te Whakaatu.
  • He waahanga hou o nga API kua whakawhitia ki te waahanga pumau, tae atu ki nga tikanga kua whakapumautia
    • ‹*const T›::cast, ‹*mut T›::cast,
    • Roa::as_secs_f{32|64},
    • Roa::div_duration_f{32|64},
    • Roa::div_f{32|64},
    • Roa::from_secs_f{32|64},
    • Roa::mul_f{32|64},
    • nga mahi wehewehe me te toenga
      div_euclid me te rem_euclid mo nga tauoti tuatahi katoa;

  • He tautoko taapiri mo te tautuhi i te whiringa "--features" i nga wa maha kia taea ai nga ahuatanga rereke i roto i te kaiwhakahaere kete utanga;
  • Ka whakaratohia e te kaitoi te tuatoru kōeke tautoko mo nga papaaapapa whainga aarch64-uwp-windows-msvc, i686-uwp-windows-gnu, i686-uwp-windows-msvc, x86_64-uwp-windows-gnu, x86_64-uwp-windows-msvc nga whaainga, armvux7 -gnueabi, armv7-unknown-linux-musleabi, hexagon-unknown-linux-musl me riscv32i-unknown-kore-elf. Ko te taumata tuatoru ko te tautoko taketake, engari kaore he whakamatautau aunoa me te whakaputanga o nga hanga mana.

Source: opennet.ru

Tāpiri i te kōrero