foilsithe scaoileadh 1.45 de theanga ríomhchláraithe an chórais Meirge, a bhunaigh an tionscadal Mozilla. Díríonn an teanga ar shábháilteacht chuimhne, soláthraíonn sé bainistíocht cuimhne uathoibríoch, agus soláthraíonn sé uirlisí chun comhthreomhaireacht tasc ard a bhaint amach gan úsáid a bhaint as bailitheoir truflais agus runtime.
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. Tá bainisteoir pacáiste á fhorbairt chun leabharlanna a dháileadh, tionól a chinntiú agus spleáchais an tionscadail a bhainistiú. Cargo, rud a ligeann duit na leabharlanna atá ag teastáil don chlár a fháil i gcliceáil amháin. Tacaítear le stór chun leabharlanna a óstáil cliathbhoscaí.io.
Deireadh le fada an lá locht nuair a dhéantar tiontuithe idir slánuimhreacha agus uimhreacha snámhphointe. Ós rud é go n-úsáideann an tiomsaitheoir Rust LLVM mar inneall, rinneadh oibríochtaí comhshó cineáil trí threoracha cód idirmheánacha LLVM ar nós fptoui, a bhfuil gné shuntasach amháin acu - iompar neamhshainithe mura n-oireann an luach mar thoradh air sin don chineál sprice. Mar shampla, nuair a dhéantar an luach snámhphointe 300 le cineál f32 a thiontú go slánuimhir cineál u8, tá an toradh dothuartha agus d'fhéadfadh sé a bheith éagsúil ar chórais éagsúla. Is í an fhadhb atá ann go bhfuil an ghné seo le feiceáil i gcód nach bhfuil marcáilte mar "neamhshábháilte".
Amhail Rust 1.45, tá iompar ró-shreabhadh cineál cineáil rialaithe go docht, agus seiceálann an oibríocht chomhshó "mar" le haghaidh ró-shreabhadh agus cuireann sé iallach ar an luach a thiontú go luach uasta nó íosta an chineáil sprice (mar shampla thuas, luach de 300 a thiontú go 255). Chun seiceálacha den sórt sin a dhíchumasú, soláthraítear glaonna API breise “{f64, f32}::to_int_unchecked”, ag feidhmiú i mód neamhshábháilte.
fn cast(x: f32) -> u8 {
x mar u8
}
fn príomh() {
lig too_big = 300.0;
ligean too_small = -100.0;
lig nan = f32::NAN;
lig x: f32 = 1.0;
lig y: u8 = neamhshábháilte { x.to_int_unchecked() };
Úsáid chobhsaithe Macraí nós imeachtanathanna cainte, teimpléid agus ráitis atá cosúil le feidhm. Roimhe seo, níorbh fhéidir macraí den sórt sin a ghlaoch i ngach áit, ach amháin i gcodanna áirithe den chód (mar ghlao ar leithligh, gan a bheith fite fuaite le cód eile). Bhí sé ar cheann de na ceanglais chun an creat gréasáin a oibriú a leathnú ar an mbealach ar féidir macraí a ghlaoch, cosúil le feidhmeanna Rocket i scaoileadh cobhsaí de Rust. Roimhe seo, bhí gá le solúbthacht bhreise a bhaint amach maidir le láimhseálaithe a shainmhíniú i Rocket le cumasú gné thurgnamhach ar a dtugtar “proc_macro_hygiene”, nach bhfuil ar fáil i leaganacha cobhsaí de Rust. Tá an fheidhmiúlacht seo ionsuite anois in eisiúintí cobhsaí na teanga.
Ceadaítear raonta le cineál “charachtar” a úsáid chun athrá a dhéanamh ar luachanna raoin (ops :{Range, RangeFrom, RangeFull, RangeInclusive, RangeTo}):
le haghaidh ch in 'a'.. = 'z' {
priontáil!("{}", ch);
}
cló!(); // Priontálfaidh "abcdefghijklmnopqrstuvwxyz"
Aistríodh cuid nua de APInna chuig an gcatagóir cobhsaí, lena n-áirítear cobhsaithe
Arc:: as_ptr,
BTreeMap::bain_iontráil,
Rc:: as_ptr,
rc:: Lag:: as_ptr,
rc :: Lag :: from_raw,
rc :: Lag :: isteach_amh,
str:: strip_prefix,
str:: stiall_iarmhír,
sioncronú:: Lag:: as_ptr,
sioncronú:: Lag::from_raw,
sioncronú:: Lag:: isteach_amh,
char::UNICODE_VERSION,
Réise::réite_ag,
Réise::lonnaithe_at,
Réise::suíomh_measctha,
unix::próiseas::CommandExt::arg0.
Tá tacaíocht curtha ag an tiomsaitheoir rustc chun gnéithe éagsúla an ardáin sprice a shárú trí úsáid a bhaint as an mbratach “spriocghné”, mar shampla, “-C target-feature=+avx2,+fma”. Cuireadh bratacha nua leis freisin:
"táblaí fórsa-scaoilte" chun táblaí glaonna unwind a ghiniúint, beag beann ar an straitéis láimhseála tuairteála; "Cód Giotán leabaithe" chun a rialú an bhfuil giotánchód LLVM san áireamh i rlibs ginte. Tá an bhratach "embed-bitcode" cumasaithe de réir réamhshocraithe in Cargo chun an t-am tógála agus an tomhaltas spáis diosca a bharrfheabhsú.
Tá tríú leibhéal tacaíochta curtha ar fáil do na hardáin mipsel-sony-psp agus thumbv7a-uwp-windows-msvc. Tá tacaíocht bhunúsach i gceist leis an tríú leibhéal, ach gan tástáil uathoibrithe agus foilsiú na tógála oifigiúla.
Ina theannta sin, is féidir a thabhairt faoi deara an scéal faoi chruthú na cinn is simplí apps sa teanga Rust, ag tosú ag baint úsáide as an tosaitheoir córais agus réidh le luchtú féinchuimsitheach in ionad an chórais oibriúcháin.
Is é an t-alt seo an chéad cheann i sraith atá tiomnaithe do theicnící a bhfuil éileamh orthu i ríomhchlárú leibhéal íseal agus i bhforbairt OS a léiriú.