Mwepụta nke asụsụ mmemme Rust 2021 (1.56)

Ntọhapụ nke asụsụ mmemme usoro Rust 1.56, nke Mozilla ngo tọrọ ntọala, ma ugbu a mepụtara n'okpuru nkwado nke otu nọọrọ onwe ya na-abụghị uru Rust Foundation, ka ebipụtara. Na mgbakwunye na ọnụọgụ ụdị nke oge niile, ewepụtara ntọhapụ ahụ Rust 2021 wee gosipụta nkwụsi ike nke mgbanwe ndị echere n'ime afọ atọ gara aga. Rust 2021 ga-abụkwa ihe ndabere maka ịba ụba ọrụ n'ime afọ atọ na-esote, dịka ntọhapụ nke Rust 2018 si bụrụ ihe ndabere maka mmepe asụsụ n'ime afọ atọ gara aga.

Iji nọgide na-enwe ndakọrịta, ndị mmepe nwere ike iji akara "2015", "2018" na "2021" n'ime mmemme ha, na-enye ohere ijikọ mmemme na mpekere steeti asụsụ dabara na mbipụta nchara ahọpụtara. Ewebatara mbipụta iji kewapụ mgbanwe na-ekwekọghị ekwekọ ma hazie ya na metadata nke ngwugwu ibu site na mpaghara “mbipụta” dị na ngalaba “[ngwugwu]”. Dịka ọmụmaatụ, mbipụta "2018" gụnyere arụmọrụ kwụsiri ike dị ka njedebe nke 2018 ma kpuchie mgbanwe niile ọzọ na-adịghị emebi ndakọrịta. Mbipụta 2021 gụnyekwara atụmatụ nbibi mmekọrịta akwadoro na ntọhapụ 1.56 dị ugbu a yana akwadoro maka mmejuputa n'ọdịnihu. Na mgbakwunye na asụsụ n'onwe ya, ndị editọ na-eburukwa n'uche ọnọdụ ngwaọrụ na akwụkwọ.

Isi ndakọrịta nke edere na Rust 2021:

  • Njide dị iche na mmechi - Mmechi nwere ike weghara aha ubi nke ọ bụla kama njirimara niile. Dị ka ihe atụ, "|| ax + 1" ga-ejide naanị "ax" kama "a".
  • Àgwà IntoIterator maka array: array.into_iter() na-enye gị ohere iji ụkpụrụ na-akọwapụta ihe n'usoro, kama site na ntụnyere aka.
  • Agbanwela nhazi okwu "|" na macro_rules (Boolean OR) na ụkpụrụ - Nkọwapụta ":pat" na egwuregwu na-asọpụrụ "A | B".
  • Onye njikwa ngwungwu ibu na-agụnye na ndabara ụdị nke abụọ nke ihe ndozi njirimara, nkwado nke pụtara na Rust 1.51.
  • Agbakwunyela àgwà TryFrom, TryInto na FromIterator na modul ọkọlọtọ ọkọlọtọ mmalite.
  • Ụjọ ahụ!
  • Okwu ident#, ident»... na ident'...' ka edobere n'ime syntax asụsụ.
  • Akwagara bare_trait_objects na ellipsis_inclusive_range_patterns ịdọ aka ná ntị maka mperi.

Ọhụrụ na Rust 1.56:

  • Na Cargo.toml, na ngalaba "[ngwugwu]", agbakwunyere ubi ụdị nchara, nke ị nwere ike ikpebi ụdị nchara kacha nta na-akwado maka ngwugwu crate. Ọ bụrụ na ụdị dị ugbu a adabaghị n'ụdị akọwapụtara, Cargo ga-akwụsị iji ozi njehie arụ ọrụ.
  • Mgbe ụkpụrụ dabara na iji okwu "binding @ pattern", a na-enye nkwado maka ịkọwapụta njikọ ndị ọzọ (dịka ọmụmaatụ, "let matrix @ Matrix {row_len, .. } = get_matrix();").
  • Atụgharịla akụkụ ọhụrụ nke API n'ụdị nke kwụsiri ike, gụnyere ụzọ na mmejuputa omume nke ejiri mesie ike:
    • std:: os:: unix:: fs:: chroot
    • UnsafeCell:: raw_get
    • BufWriter :: n'ime_akụkụ
    • isi:: ụjọ:: {UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec:: gbadaa_na
    • Ụdọ ::shrink_to
    • OsString::kwaa_na
    • PathBuf:: gbadaa
    • BinaryHeap :: shrink_to
    • VecDeque :: shrink_to
    • HashMap::kwaa_na
    • HashSet:: gbadaa_na
  • A na-eji àgwà "const", nke na-ekpebi ohere iji mee ihe n'ọnọdụ ọ bụla kama ịnọgide na-arụ ọrụ.
    • std:: mem:: transmute
    • [T] :: mbụ
    • [T] :: nkewa_nke mbụ
    • [T]:: ikpeazụ
    • [T] :: kewara_ikpeazu
  • Agbanyela onye nchịkọta ka ọ jiri ụdị LLVM 13.
  • E mejuputara ọkwa nkwado nke abụọ maka ikpo okwu aarch64-apple-ios-sim na ọkwa nke atọ maka ikpo okwu powerpc-unknown-freebsd na riscv32imc-esp-espidf. Ọkwa nke atọ gụnyere nkwado bụ isi, mana na-enweghị nnwale akpaaka, na-ewu ụlọ ọrụ na-ebipụta, ma ọ bụ lelee ma enwere ike iwu koodu ahụ.

Cheta na nchara na-elekwasị anya na nchekwa ebe nchekwa, na-enye njikwa ebe nchekwa akpaka, ma na-enye ụzọ iji nweta nnukwu myirịta na-arụ ọrụ na-enweghị iji ihe mkpofu ma ọ bụ oge na-agba ọsọ (oge na-agba ọsọ na-ebelata na mmalite mmalite na nhazi nke ọbá akwụkwọ ọkọlọtọ).

Njikwa ebe nchekwa akpaka nke Rust na-ewepụ njehie mgbe ị na-emegharị ihe nrịbama ma na-echebe megide nsogbu na-esite na ngbanwe ebe nchekwa dị ala, dị ka ịnweta mpaghara ebe nchekwa mgbe a tọhapụrụ ya, nkwụsị pointer null, buffer overruns, wdg. Iji kesaa ọba akwụkwọ, hụ na mgbakọ na jikwaa dabere, ọrụ a na-emepe emepe njikwa ngwugwu Cargo. A na-akwado ebe nchekwa crates.io maka ọba akwụkwọ nnabata.

isi: opennet.ru

Tinye a comment