Eisiúint na teanga ríomhchlárúcháin Rust 2021 (1.56)

Tá scaoileadh na teanga ríomhchláraithe córais Rust 1.56, a bhunaigh an tionscadal Mozilla, ach a forbraíodh anois faoi choimirce na heagraíochta neamhspleách neamhbhrabúis Rust Foundation, foilsithe. Chomh maith leis an uimhir leagain rialta, ainmnítear an scaoileadh freisin Rust 2021 agus marcálann sé cobhsú ar athruithe atá beartaithe le trí bliana anuas. Beidh Rust 2021 mar bhunús freisin le feidhmiúlacht a mhéadú sna trí bliana amach romhainn, cosúil leis an gcaoi a tháinig scaoileadh Rust 2018 mar bhunús d’fhorbairt na teanga le trí bliana anuas.

Chun comhoiriúnacht a choinneáil, is féidir le forbróirí lipéid "2015", "2018" agus "2021" a úsáid ina gcláir, rud a ligeann do chláir a bheith nasctha le slisní stáit teanga a fhreagraíonn do na heagráin roghnaithe de Rust. Tugadh isteach eagráin chun athruithe neamh-chomhoiriúnacha a scaradh agus tá siad cumraithe i meiteashonraí na bpacáistí lasta tríd an réimse “eagrán” sa roinn “[pacáiste]”. Mar shampla, cuimsíonn eagrán “2018” an fheidhmiúlacht a bhí cobhsaithe ag deireadh 2018 agus clúdaíonn sé freisin gach athrú breise nach sáraíonn an chomhoiriúnacht. Áirítear freisin in eagrán 2021 gnéithe idir-inoibritheachta atá molta san eisiúint 1.56 reatha agus atá ceadaithe lena gcur chun feidhme amach anseo. Chomh maith leis an teanga féin, cuireann na heagarthóirí san áireamh freisin staid na n-uirlisí agus na doiciméid.

Mór-neamh-chomhoiriúnacht a taifeadadh i Rust 2021:

  • Gabháil ar Leith i nDúnadh - Is féidir le dúnta ainmneacha páirce aonair a ghabháil anois in ionad an aitheantóra iomlán. Mar shampla, “|| ax + 1" a ghabháil ach "tua" in ionad "a".
  • Ceadaíonn an trait IntoIterator le haghaidh eagair: array.into_iter() duit níos mó ná eilimintí eagar a athrá de réir luachanna, seachas trí thagairtí.
  • Athraíodh próiseáil na slonn “|” i macro_rules (Boolean OR) i bpatrúin - Tá meas ag an sonróir ":pat" sna cluichí anois ar "A | B".
  • Áiríonn an bainisteoir pacáiste lasta de réir réamhshocraithe an dara leagan den réititheoir gné, a bhfuil tacaíocht dó le feiceáil i Rust 1.51.
  • Tá na tréithe TryFrom, TryInto agus FromIterator curtha leis an modúl caighdeánach leabharlainne prelude.
  • An scaoll!(..) agus a dhearbhú!(expr, ..) Macraí anois a úsáid i gcónaí format_args!(..) teaghráin formáid, cosúil le println!().
  • Coinnítear na sloinn ident#, ident»..." agus ident'...' sa chomhréir teanga.
  • Bogadh rabhaidh bare_trait_objects agus ellipsis_inclusive_range_patterns chuig earráidí.

Nua i Rust 1.56:

  • In Cargo.toml, sa roinn “[pacáiste]”, tá an réimse leagan meirge curtha leis, trínar féidir leat an leagan íosta tacaithe de Rust a chinneadh don phacáiste cliathbhosca. Mura bhfuil an leagan reatha ag teacht leis an bparaiméadar sonraithe, stopfaidh Cargo ag obair le teachtaireacht earráide.
  • Nuair a bhíonn meaitseáil patrún ag baint úsáide as nathanna "ceangailteach @ patrún", cuirtear tacaíocht ar fáil chun ceangail bhreise a shonrú (mar shampla, "lig maitrís @ Maitrís { row_len, .. } = get_matrix();").
  • Aistríodh cuid nua den API chuig an gcatagóir de chobhsaí, lena n-áirítear modhanna agus cur i bhfeidhm na dtréithe a chobhsú:
    • std::os::unix::fs::chroot
    • UnsafeCell::raw_get
    • BufWriter ::i_chodanna
    • croí::scaoll ::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vc:: Laghdaigh_chuig
    • Teaghrán:: Laghdaigh_chuig
    • OsString :: Laghdaigh_chuig
    • PathBuf :: Laghdaigh_chuig
    • BinaryHeap :: Laghdaigh_chuig
    • VecDeque :: Laghdaigh_go
    • HashMap::Laghdaigh_chuig
    • HashSet :: Laghdaigh_chuig
  • Úsáidtear an tréith “const”, a chinneann an bhféadfaí úsáid a bhaint as in aon chomhthéacs seachas tairisigh, i bhfeidhmeanna
    • std::mem::aistrithe
    • [T]::ar dtús
    • [T] :: scoilt_an chéad
    • [T]::deireadh
    • [T] :: scoilt_last
  • Tá an tiomsaitheoir aistrithe chun LLVM leagan 13 a úsáid.
  • Tá dara leibhéal tacaíochta curtha i bhfeidhm don ardán aarch64-apple-ios-sim agus tríú leibhéal do na hardáin powerpc-unknown-freebsd agus riscv32imc-esp-espidf. Tá tacaíocht bhunúsach i gceist leis an tríú leibhéal, ach gan tástáil uathoibrithe, foirgnimh oifigiúla a fhoilsiú, nó seiceáil an féidir an cód a thógáil.

Thabhairt chun cuimhne go ndíríonn Rust ar shábháilteacht chuimhne, go soláthraíonn sé bainistíocht cuimhne uathoibríoch, agus go soláthraíonn sé modhanna chun comhthreomhar ard a bhaint amach i gcomhlíonadh post gan úsáid a bhaint as bailitheoir truflais nó am rite (laghdaítear an t-am rite go dtí túsú bunúsach agus cothabháil na leabharlainne caighdeánach).

Cuireann bainistíocht cuimhne uathoibríoch Rust deireadh le hearráidí nuair a bhíonn leideanna á n-ionramháil agus cosnaíonn sé i gcoinne fadhbanna a eascraíonn as ionramháil cuimhne ísealleibhéil, mar shampla rochtain a fháil ar réigiún cuimhne tar éis é a shaoradh, dereferences pointeoir nialasach, róchaiteachas maoláin, etc. Chun leabharlanna a dháileadh, tionól a chinntiú agus spleáchais a bhainistiú, tá an tionscadal ag forbairt bainisteoir pacáiste lasta. Tacaítear leis an stór crates.io chun leabharlanna a óstáil.

Foinse: oscailtenet.ru

Add a comment