Chaidh foillseachadh cànan prògramadh an t-siostaim Rust 1.57, 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. Tha an cànan ag amas air sàbhailteachd cuimhne, a’ toirt seachad riaghladh cuimhne fèin-ghluasadach, agus a’ toirt seachad dòigh air co-shìnteachd àrd-obrach a choileanadh gun a bhith a’ cleachdadh inneal-cruinneachaidh sgudail no ùine ruith (tha ùine ruith air a lughdachadh gu toiseach tòiseachaidh is cumail suas an leabharlainn à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.
Prìomh innleachdan:
- Chaidh cleachdadh a’ mhacro “panic!” a dhèanamh seasmhach. ann an co-theacsan a chaidh a chruthachadh aig àm cur ri chèile, leithid dearbhaidhean “const fn”. A bharrachd, a bharrachd air a bhith a 'cleachdadh "panic!" tha dearbhaidhean const a’ ceadachadh am macro “assert!” a chleachdadh. agus cuid de APIan leabharlainn àbhaisteach eile. Chan eil seasmhachd fhathast a’ còmhdach a’ bhun-structair cruthachaidh gu lèir, mar sin mar a tha e an-dràsta am macro “panic!” cha ghabh a chleachdadh ach le teudan staitigeach (panic!(“…)) no le luach singilte “&str” nuair a chuireas tu (panic! ("{}", a)) an àite, a bu chòir a bhith cuingichte gu bhith a’ cur “{” an àite }" gun fòrmatadh a dhèanamh air sònrachaidhean is seòrsaichean eile. Anns an àm ri teachd, thèid iomchaidheachd macros ann an co-theacsan seasmhach a leudachadh, ach tha na comasan seasmhach gu leòr mar-thà gus dearbhaidhean dearbhaidh a dhèanamh aig an ìre cruinneachaidh: const _: () = dearbhaich!(std :: mem::size_of ::() == 64 ); const _: () = dearbhaich!(std::mem::size_of::() == 8);
- Tha manaidsear pacaid Cargo a’ ceadachadh pròifilean a chleachdadh le ainmean neo-riaghailteach, gun a bhith cuibhrichte gu “dev”, “release”, “test” agus “bench”. Mar eisimpleir, gus optimization a chomasachadh aig an ìre ceangail (LTO) dìreach nuair a thèid na co-chruinneachaidhean toraidh deireannach a chruthachadh, faodaidh tu pròifil “riochdachaidh” a chruthachadh ann an Cargo.toml agus am bratach “lto = true” a chuir ris. Ach, nuair a tha thu a’ mìneachadh do phròifil fhèin, feumaidh tu pròifil a tha ann mu thràth a shònrachadh gus na roghainnean bunaiteach a shealbhachadh bhuaithe. Tha an eisimpleir gu h-ìosal a’ cruthachadh pròifil “riochdachaidh” a chuireas ris a’ phròifil “release” le bhith a’ toirt a-steach a’ bhratach “lto = true”. Tha am pròifil fhèin air a chuir an gnìomh le bhith a’ gairm cargo leis an roghainn “-profile production”, agus thèid na stuthan cruinneachaidh a chuir anns an eòlaire “targaid / cinneasachadh”. [profile.production] inherits = "release" lto = fìor
- Chaidh cleachdadh try_reserve airson na seòrsaichean Vec, String, HashMap, HashSet agus VecDeque a dhèanamh seasmhach, a leigeas leat àite a ghlèidheadh ro-làimh airson àireamh sònraichte de eileamaidean de sheòrsa sònraichte gus tricead gnìomhachd riarachadh cuimhne a lughdachadh agus a sheachnadh tubaistean rè obrachadh air sgàth dìth cuimhne.
- Tha e ceadaichte macros a shònrachadh le braces lùbach ann an abairtean mar "m!{ .. }.method()" agus "m!{ .. }?".
- Chaidh coileanadh an fhaidhle::read_to_end agus read_to_string gnìomhan a mheudachadh.
- Chaidh taic airson sònrachadh Unicode ùrachadh gu dreach 14.0.
- Leudaich sinn an àireamh de ghnìomhan le comharradh “#[must_use]” gus rabhadh a thoirt seachad ma thèid an luach tilleadh a leigeil seachad, a chuidicheas le bhith ag aithneachadh mhearachdan a dh’ adhbhraich le bhith a’ gabhail ris gun atharraich gnìomh luachan seach luach ùr a thilleadh.
- Cùl-taic deuchainneach air a chur ris airson gineadh còd a’ cleachdadh libgccjit.
- Chaidh cuibhreann ùr den API a ghluasad chun roinn de stàball, a’ toirt a-steach dòighean agus buileachadh feartan air an socrachadh:
- [T; N] :: as_mut_slice
- [T; N]:: as_slice
- cruinneachaidhean ::TryReserveError
- HashMap :: feuch_reserve
- HashSet :: feuch_reserve
- String :: feuch_reserve
- String :: try_reserve_exact
- Vec :: feuch_reserve
- Vec :: feuch_reserve_exact
- VecDeque :: feuch_reserve
- VecDeque :: feuch_reserve_exact
- Iterator ::mapa_fhad
- iter::MapWhile
- proc_macro :: tha_ ri fhaighinn
- Òrdugh:: get_program
- Òrdugh:: get_args
- Òrdugh:: get_envs
- Òrdugh:: get_current_dir
- CommandArgs
- CommandEnvs
- Tha am feart “const”, a tha a’ dearbhadh an gabh a chleachdadh ann an co-theacs sam bith an àite a bhith seasmhach, air a chleachdadh ann an sanas gnìomh:: unreachable_unchecked.
- Chaidh an treas ìre de thaic a chuir an gnìomh airson an armv6k-nintendo-3ds, armv7-unknown-linux-uclibceabihf, m68k-unknown-linux-gnu, aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-eabi agus armv7a-kmc- àrd-ùrlaran solid_asp3-eabihf. Tha an treas ìre a’ toirt a-steach taic bhunaiteach, ach às aonais deuchainn fèin-ghluasadach, foillseachadh toglaichean oifigeil, no sgrùdadh an gabh an còd a thogail.
Source: fosgailtenet.ru