foillsichte sgaoileadh 1.45 de chànan prògramadh an t-siostaim meirgeadh, a stèidhich am pròiseact Mozilla. Bidh an cànan ag amas air sàbhailteachd cuimhne, a’ toirt seachad riaghladh cuimhne fèin-ghluasadach, agus a’ toirt seachad innealan airson co-shìnteachd àrd-obrach a choileanadh gun a bhith a’ cleachdadh inneal-cruinneachaidh sgudail agus ùine ruith.
Bidh riaghladh cuimhne fèin-ghluasadach Rust a’ cuir às do mhearachdan nuair a thathar a’ làimhseachadh chomharran agus a’ dìon an aghaidh dhuilgheadasan ag èirigh bho làimhseachadh cuimhne aig ìre ìosal, leithid faighinn gu sgìre cuimhne às deidh dha a bhith air a shaoradh, ro-aithrisean puing null, cus bufair, msaa. Thathas a’ leasachadh manaidsear pacaid gus leabharlannan a sgaoileadh, dèanamh cinnteach à co-chruinneachadh agus riaghladh eisimeileachd leis a’ phròiseact. Cargo, a 'toirt cothrom dhut na leabharlannan a tha a dhìth airson a' phrògram fhaighinn ann an aon bhriogadh. Tha stòr a’ faighinn taic gus aoigheachd a thoirt do leabharlannan cliathaichean.io.
Air a chuir air falbh o chionn fhada lochd nuair a bhios tu a’ dèanamh atharrachaidhean eadar àireamhan iomlan agus àireamhan puing-fleòdraidh. Leis gu bheil an compiler Rust a’ cleachdadh LLVM mar backend, chaidh gnìomhachd tionndaidh seòrsa a dhèanamh tro stiùireadh còd eadar-mheadhanach LLVM leithid fptoui, aig a bheil aon fheart cudromach - giùlan neo-mhìnichte mura h-eil an luach a thig às a’ freagairt air an t-seòrsa targaid. Mar eisimpleir, nuair a thionndaidheas tu an luach fleòdraidh 300 le seòrsa f32 gu integer seòrsa u8, tha an toradh neo-fhaicsinneach agus faodaidh e atharrachadh air diofar shiostaman. Is e an duilgheadas a th ’ann gu bheil am feart seo a’ nochdadh ann an còd nach eil air a chomharrachadh mar “mì-shàbhailte”.
Mar Rust 1.45, tha giùlan thar-shruth meud seòrsa air a riaghladh gu teann, agus bidh an gnìomhachd tionndaidh “mar” a’ sgrùdadh airson tar-shruth agus a’ toirt air an luach a bhith air a thionndadh gu luach as àirde no as ìsle den t-seòrsa targaid (mar eisimpleir gu h-àrd, luach de 300 air a thionndadh gu 255). Gus na sgrùdaidhean sin a chuir dheth, tha fiosan API a bharrachd “{f64, f32}:: to_int_unchecked” air an toirt seachad, ag obair ann am modh mì-shàbhailte.
Cleachd seasmhach macros modhan-obrachabairtean coltach ri gnìomh, teamplaidean, agus aithrisean. Roimhe sin, cha b 'urrainnear a leithid de macros a ghairm anns a h-uile àite, ach a-mhàin ann an cuid de phàirtean den chòd (mar ghairm air leth, gun a bhith eadar-cheangailte le còd eile). B’ e leudachadh mar a dh’ fhaodar macros a ghairm, coltach ri gnìomhan, mar aon de na riatanasan airson toirt air frèam an lìn obrachadh Rocket ann an sgaoilidhean seasmhach de Rust. Roimhe sin, bha feum air sùbailteachd a bharrachd ann a bhith a’ mìneachadh luchd-làimhseachaidh ann an Rocket a’ comasachadh feart deuchainneach ris an canar “proc_macro_hygiene”, nach eil ri fhaighinn ann an dreachan seasmhach de Rust. Tha an gnìomh seo a-nis mar phàirt de sgaoilidhean seasmhach den chànan.
Ceadaichte raointean a chleachdadh le seòrsa “char” gus ath-aithris thairis air luachan raon (ops : {Range, RangeFrom, RangeFull, RangeInclusive, RangeTo}):
airson ch ann an 'a'.. = 'z' {
clò-bhualadh!("{}", ch);
}
clò!(); // Clò-bhuailidh e "abcdefghijklmnopqrstuvwxyz"
Chaidh cuibhreann ùr de APIan a ghluasad chun roinn stàbaill, a’ toirt a-steach seasmhach
Arc:: as_ptr,
BTreeMap :: thoir air falbh_inntrigeadh,
Rc:: as_ptr,
rc:: Lag:: as_ptr,
rc :: Lag :: from_raw,
rc :: Lag :: into_raw,
str :: strip_prefix,
str :: strip_suffix,
sioncranachadh :: Lag :: as_ptr,
sioncranachadh :: Lag :: from_raw,
sioncranachadh :: Lag :: into_raw,
char::UNICODE_VERSION,
Rèit ::rèitichte_aig,
Span ::locate_at,
Raon:: làrach_ measgaichte,
unix :: pròiseas :: CommandExt :: arg0.
Tha an compiler rustc air taic a chuir ris airson a bhith a’ dol thairis air grunn fheartan àrd-ùrlair targaid a’ cleachdadh a’ bhratach “target-feature”, mar eisimpleir, “-C target-feature = + avx2, + fma”. Chaidh brataichean ùra a chur ris cuideachd:
"force-unwind-tables" gus clàran gairm a ghineadh, ge bith dè an ro-innleachd làimhseachadh tubaist; “embed-bitcode” gus smachd a chumail a bheil LLVM bitcode air a ghabhail a-steach ann an rlibs gineadh. Tha am bratach “embed-bitcode” air a chomasachadh gu bunaiteach ann an Cargo gus an ùine togail agus an caitheamh àite diosc a mheudachadh.
Chaidh treas ìre de thaic a thoirt seachad airson na h-àrd-ùrlaran mipsel-sony-psp agus thumbv7a-uwp-windows-msvc. Tha an treas ìre a’ toirt a-steach taic bhunaiteach, ach às aonais deuchainn fèin-ghluasadach agus foillseachadh thogalaichean oifigeil.
A bharrachd air an sin, faodar a thoirt fa-near an sgeulachd mu bhith a’ cruthachadh an fheadhainn as sìmplidh apps anns a’ chànan Rust, a’ tòiseachadh a’ cleachdadh bootloader an t-siostaim agus deiseil airson luchdachadh fèin-chumanta an àite an t-siostam obrachaidh.
Is e an artaigil a’ chiad fhear ann an sreath a tha coisrigte ri bhith a’ taisbeanadh dhòighean air a bheil iarrtas ann am prògramadh aig ìre ìosal agus leasachadh OS.