Whakaputa reo hootaka waikura 2021 (1.56)

Ko te tukunga o te reo hootaka punaha Rust 1.56, 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. I tua atu i te nama putanga auau, ko te tukunga kua tohua ko Rust 2021 me te tohu i te whakapumautanga o nga huringa i whakaarohia i roto i nga tau e toru kua hipa. Ka noho ano a Rust 2021 hei turanga mo te whakanui ake i nga mahi i roto i nga tau e toru e whai ake nei, he rite ki te putanga o Rust 2018 hei turanga mo te whanaketanga o te reo i nga tau e toru kua hipa.

Hei pupuri i te hototahitanga, ka taea e nga kaiwhakawhanake te whakamahi i nga tapanga "2015", "2018" me "2021" i roto i a raatau kaupapa, ka taea te hono atu o nga papatono ki nga poro whenua reo e rite ana ki nga putanga kua tohua o Rust. I whakauruhia nga putanga ki te wehe i nga huringa hotokore, ka whirihorahia i roto i te metadata o nga kete utanga ma te mara "putanga" i te waahanga "[package]". Hei tauira, kei roto i te putanga "2018" nga mahi kua whakapumautia mai i te mutunga o te tau 2018 me te kapi hoki i nga huringa katoa kaore e pakaru te hototahi. Kei roto ano i te putanga 2021 nga ahuatanga pakaru-whakawhitinga e whakaarohia ana i roto i te tukunga 1.56 o naianei ka whakaaetia mo te whakatinanatanga a meake nei. I tua atu i te reo ake, ka whai whakaaro ano nga kaiwhakatika ki te ahua o nga taputapu me nga tuhinga.

Nga hotokoretanga nui i tuhia ki Rust 2021:

  • Hopu Wehe i roto i nga Katinga - Ka taea e nga katinga te hopu i nga ingoa mara takitahi hei utu mo te katoa o te tautohu. Hei tauira, "|| ax + 1" ka hopu noa "ax" hei utu mo "a".
  • Ko te ahua IntoIterator mo nga huānga: array.into_iter() ka taea e koe te huri i nga huānga huānga ma nga uara, kaua ma nga tohutoro.
  • Ko te tukatuka o nga korero "|" kua hurihia i roto i nga ture_tono (Boolean OR) i roto i nga tauira - Ko te tohu ": pat" i roto i nga keemu e aro ana inaianei ki te "A | B".
  • Kei roto i te kaiwhakahaere o te kete utauta te putanga tuarua o te kaiwhakatau ahua, tautoko i puta mai i Rust 1.51.
  • Ko nga ahuatanga TryFrom, TryInto me FromIterator kua taapirihia ki te waahanga pukapuka paerewa o mua.
  • Ko te panic!(..) and assert!(expr, ..) tonotono inaianei ka whakamahi i nga wa katoa format_args!(..) ki te whakahōputu aho, he rite ki te println!().
  • Ko nga kupu ident#, ident»..." me te ident'...' kei roto i te wetereo reo.
  • Kua nukuhia nga mea_ahua_kaupapa me nga tauira ellipsis_inclusive_range_patterns ki nga hapa.

Hou i roto i te Rust 1.56:

  • I roto i te Cargo.toml, i roto i te waahanga "[package]", kua taapirihia te mara-putanga waikura, ma reira ka taea e koe te whakatau i te iti rawa o te tautoko a Rust mo te kete pouaka. Ki te kore te putanga o naianei e taurite ki te tawhā kua tohua, ka mutu te mahi a Cargo me te karere hapa.
  • I te wa e whakataurite ana te tauira ma te whakamahi i nga korero "herea @ tauira", ka tautokohia te tohu mo etahi atu here (hei tauira, "tuku matrix @ Matrix {row_len, .. } = get_matrix();").
  • 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:
    • std::os::unix::fs::chroot
    • UnafeCell::raw_get
    • BufWriter::i roto_waahanga
    • matua::panic::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec::tiki_ki
    • Aho::whakaheke_ki
    • OsString::shrink_to
    • PathBuf::tiki_ki
    • BinaryHeap::tiki_ki
    • VecDeque::tiki_ki
    • HashMap::shrink_to
    • HashSet::shrink_to
  • Ko te huanga "const", e whakatau ana i te kaha ki te whakamahi i roto i tetahi horopaki hei utu mo nga taumau, ka whakamahia i roto i nga mahi
    • std::mem::transmute
    • [T]::tuatahi
    • [T]::wehe_tuatahi
    • [T]::whakamutunga
    • [T]::wehe_whakamutunga
  • Kua hurihia te kaitoha ki te whakamahi i te putanga LLVM 13.
  • Kua whakatinanahia te taumata tuarua o te tautoko mo te papaaapapa aarch64-apple-ios-sim me te taumata tuatoru mo nga papaaho powerpc-unknown-freebsd me riscv32imc-esp-espidf. 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.

Kia maumahara kei te arotahi a Rust ki te haumaru mahara, e whakarato ana i te whakahaere mahara aunoa, e whakarato ana i te huarahi ki te whakatutuki i te whakarara teitei i roto i te mahi mahi me te kore e whakamahi i te kaikohi paru, i te wa whakahaere ranei (ka whakaitihia te wa whakahaere ki te arataki taketake me te tiaki i te whare pukapuka paerewa).

Ko te whakahaere mahara aunoa a Rust ka whakaora i te kaiwhakawhanake mai i nga hapa i te wa e raweke ana i nga tohu tohu me te whakamarumaru mai i nga raru ka puta mai na te raweke mahara taumata-iti, penei i te urunga ki tetahi waahi mahara i muri i te wetewetetanga, te whakakore i nga tohu tohu kore, te paopao, me era atu. Hei tohatoha whare pukapuka, whakarato hanga me te whakahaere i nga whakawhirinakitanga, ka whakawhanakehia e te kaupapa te kaiwhakahaere kete Uta. Kei te tautokohia te putunga crates.io mo te manaaki whare pukapuka.

Source: opennet.ru

Tāpiri i te kōrero