Sgaoileadh cànan prògramadh Rust 2021 (1.56)

Chaidh foillseachadh cànan prògramadh an t-siostaim Rust 1.56, a chaidh a stèidheachadh le pròiseact Mozilla, ach a chaidh a leasachadh a-nis fo sgèith na buidhne neo-eisimeileach neo-phrothaideach Rust Foundation, fhoillseachadh. A bharrachd air an àireamh dreach cunbhalach, tha an sgaoileadh cuideachd air ainmeachadh mar Rust 2021 agus a’ comharrachadh seasmhachd nan atharrachaidhean a chaidh a mholadh thairis air na trì bliadhna a dh’ fhalbh. Bidh Rust 2021 cuideachd na bhunait airson togail fheartan thairis air na trì bliadhna a tha romhainn, coltach ri mar a tha an sgaoileadh Rust 2018 air a bhith na bhunait airson leasachadh cànain thar nan trì bliadhna a dh’ fhalbh.

Gus co-chòrdalachd a chumail suas, faodaidh luchd-leasachaidh na tagaichean “2015”, “2018”, agus “2021” a chleachdadh anns na prògraman aca gus prògraman a cheangal ri sliseagan stàite cànain a tha a rèir deasachaidhean Rust taghte. Chaidh ath-sgrùdaidhean a thoirt a-steach airson atharrachaidhean neo-fhreagarrach a sgaradh agus tha iad air an rèiteachadh ann am meata-dàta pasganan bathair tron ​​​​raon “deasachadh” anns an roinn “[pasgan]”. Mar eisimpleir, tha deasachadh 2018 a ’toirt a-steach comas-gnìomh a chaidh a dhèanamh seasmhach aig deireadh 2018 agus cuideachd a’ còmhdach gach atharrachadh san àm ri teachd nach bi a ’dol an aghaidh co-chòrdalachd. Tha deasachadh 2021 cuideachd a’ toirt a-steach feartan briseadh co-chòrdalachd a chaidh a mholadh san fhoillseachadh 1.56 gnàthach agus a chaidh aontachadh airson a bhuileachadh san àm ri teachd. A bharrachd air a’ chànan fhèin, bidh an luchd-deasachaidh cuideachd a’ toirt aire do staid nan innealan agus nan sgrìobhainnean.

Is iad na prìomh neo-fhreagarrachd a chaidh a shuidheachadh ann an Rust 2021:

  • Glacadh air leth ann an dùnadh - faodaidh dùnadh a-nis ainmean làraich fa leth a ghlacadh an àite an ID gu lèir. Mar eisimpleir, “|| cha ghlac tuagh + 1 ach "tuagh" an àite "a".
  • Leigidh an cumadh IntoIterator airson arrays: array.into_iter() leat aithris a dhèanamh air na h-eileamaidean ann an sreath a rèir luach seach le iomradh.
  • Chaidh pròiseasadh abairtean "|" atharrachadh ann am macro_rules (obrachadh loidsigeach OR) ann am pàtrain - Tha an sònrachadh ": pat" ann an maidsean a-nis a’ toirt spèis do phàtranan" A | B".
  • Tha am manaidsear pacaid bathair a’ toirt a-steach gu bunaiteach an dàrna dreach den fuasgladh feart, a chaidh taic a thoirt a-steach ann an Rust 1.51.
  • Chaidh na feartan TryFrom, TryInto, agus FromIterator a chur ris a’ mhodal leabharlainn àbhaisteach prelude.
  • Bidh na macros clisgeadh! (..) agus dearbhaich!(expr, ..) a-nis an-còmhnaidh a’ cleachdadh format_args! (..) gus sreangan a chruth, coltach ri println!().
  • Tha na h-abairtean ident#, ident"…" agus ident '…' glèidhte ann an co-chòrdadh a' chànain.
  • Chaidh na rabhaidhean lom_trait_objects agus ellipsis_inclusive_range_patterns a ghluasad gu roinn na mearachd.

Ùr ann an Rust 1.56:

  • Ann an Cargo.toml, anns an roinn “[pasgan]”, chaidh an raon tionndadh meirge a chuir ris, tron ​​​​urrainn dhut an dreach as lugha le taic de Rust a dhearbhadh airson a’ phacaid crate. Mura h-eil an dreach làithreach a’ freagairt ris a’ pharameter ainmichte, sguireas Cargo le mearachd.
  • Nuair a bhios pàtran a’ maidseadh a’ cleachdadh abairtean “ceangailteach @ pàtran”, tha taic air a thoirt seachad airson ceanglachan a bharrachd a shònrachadh (mar eisimpleir, “let matrix @ Matrix { row_len, .. } = get_matrix ();).
  • Chaidh cuibhreann ùr den API a ghluasad chun roinn de stàball, a’ toirt a-steach dòighean agus buileachadh feartan air an socrachadh:
    • std :: os :: unix :: fs :: chroot
    • UnsafeCell ::raw_get
    • BufWriter :: a-steach_pàirtean
    • cridhe :: clisgeadh ::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec :: shrink_to
    • Sreath :: shrink_to
    • OsString :: shrink_to
    • PathBuf :: shrink_to
    • BinaryHeap :: shrink_to
    • VecDeque :: shrink_to
    • HashMap :: shrink_to
    • HashSet :: shrink_to
  • Tha am feart “const”, a tha a’ dearbhadh comasachd a chleachdadh ann an co-theacsa sam bith an àite seasmhach, air a chleachdadh ann an gnìomhan
    • std:: mem:: transmute
    • [T] :: an toiseach
    • [T] :: split_first
    • [T]:: mu dheireadh
    • [T] :: split_last
  • Chaidh an compiler atharrachadh gus LLVM dreach 13 a chleachdadh.
  • Taic ìre 64 air a chuir an gnìomh airson an àrd-ùrlar aarch32-apple-ios-sim agus taic ìre XNUMX airson na h-àrd-ùrlaran powerpc-unknown-freebsd agus riscvXNUMXimc-esp-espidf. Tha an treas ìre a 'ciallachadh taic bunaiteach, ach às aonais deuchainn fèin-ghluasadach, a' foillseachadh togalaichean oifigeil agus a 'sgrùdadh comas a' chòd a thogail.

Cuimhnich gu bheil cànan Rust ag amas air riaghladh cuimhne sàbhailte, a ’toirt seachad riaghladh cuimhne fèin-ghluasadach, agus a’ toirt seachad dòigh air co-shìnteachd àrd a choileanadh ann an coileanadh obrach, fhad ‘s a tha e a’ dèanamh gun a bhith a ’cleachdadh neach-cruinneachaidh sgudail agus ùine ruith (tha ùine ruith air a lughdachadh gu tòiseachadh bunaiteach agus cumail suas an leabharlann àbhaisteach).

Bidh riaghladh cuimhne fèin-ghluasadach Rust a’ sàbhaladh an leasaiche bho mhearachdan nuair a bhios e a’ làimhseachadh chomharran agus a’ dìon an aghaidh dhuilgheadasan a thig am bàrr mar thoradh air làimhseachadh cuimhne aig ìre ìosal, leithid faighinn gu raon cuimhne às deidh dha a bhith air a shaoradh, a’ toirt iomradh air comharran null, cus bufair, msaa. Gus leabharlannan a sgaoileadh, togail a thoirt seachad agus eisimeileachd a riaghladh, bidh am pròiseact a’ leasachadh manaidsear pacaid Cargo. Tha an stòr crates.io a’ faighinn taic airson aoigheachd a thoirt do leabharlannan.

Source: fosgailtenet.ru

Cuir beachd ann