Cyhoeddwyd rhyddhau iaith rhaglennu system Rhwd 1.44, a sefydlwyd gan brosiect Mozilla. Mae'r iaith yn canolbwyntio ar ddiogelwch cof, yn darparu rheolaeth cof awtomatig, ac yn darparu offer ar gyfer cyflawni cyfochrogrwydd tasg uchel heb ddefnyddio casglwr sbwriel a Rhedeg.
Mae rheolaeth cof awtomatig Rust yn dileu gwallau wrth drin awgrymiadau ac yn amddiffyn rhag problemau sy'n deillio o drin cof lefel isel, megis cyrchu rhanbarth cof ar ôl iddo gael ei ryddhau, dadgyfeiriadau pwyntydd nwl, gor-redeg byffer, ac ati. Mae rheolwr pecyn yn cael ei ddatblygu i ddosbarthu llyfrgelloedd, sicrhau cydosod a rheoli dibyniaethau gan y prosiect. Tâl, sy'n eich galluogi i gael y llyfrgelloedd sydd eu hangen ar gyfer y rhaglen mewn un clic. Cefnogir ystorfa i gynnal llyfrgelloedd cewyll.io.
Yn nhestun cyhoeddiad y datganiad newydd, cymerodd datblygwyr Rust ran mewn gwleidyddiaeth a gwrthododd yn amlwg gyhoeddi adolygiad llawn o'r newidiadau yn Rust 1.44 fel arwydd o undod â phrotestwyr yn erbyn trais yr heddlu, gan nodi bod y mater hwn yn bwysicach. na chyfnewid gwybodaeth dechnegol. Syml arloesiadau:
Mae'r rheolwr pecyn Cargo yn integreiddio'r gorchymyn “coeden cargo”, sy'n dangos graff dibyniaeth tebyg i goeden. Ychwanegwyd hefyd yr opsiwn “—duplicates” (“coeden cargo -d”), sy'n eich galluogi i werthuso dibyniaethau mewn gwahanol fersiynau o'r un pecyn.
Ar gyfer cymwysiadau nad ydynt wedi'u rhwymo i std ("#![no_std]"), gweithredir cefnogaeth ar gyfer technegau rhaglennu asyncronaidd yn seiliedig ar y swyddogaeth "async", y bloc symud async { ... } a'r gweithredwr ".await", sy'n symleiddio ysgrifennu trinwyr nad ydynt yn rhwystro llif prif orchymyn.
Mae cefnogaeth ar gyfer cynllun diffinio hierarchaeth modiwlau estynadwy wedi'i ychwanegu at y parser. Er enghraifft, ni fydd y lluniad canlynol yn cynhyrchu gwall, er gwaethaf absenoldeb gwirioneddol y modiwl "foo/bar/baz.rs" (mae'r lluniad yn dal yn semantig annilys a gall achosi gwall, ond gellir gweld a dosrannu'r newidiadau yn y lefel llunio macro ac amodol):
#[cfg(FALSE)] mod foo {
bar mod {
mod baz;
}
}
Mae'r casglwr rustc wedi ychwanegu'r gallu i ddefnyddio'r faner “-C codegen-units” mewn modd cynyddrannol. Mae gweithredu catch_unwind wedi'i ail-weithio fel nad yw'n cael unrhyw effaith perfformiad os yw'r broses ddad-ddirwyn yn anabl ac na fydd unrhyw eithriadau yn cael eu taflu.
Mae cefnogaeth Lefel 64 wedi'i darparu ar gyfer llwyfannau aarch64-unknown-none, aarch64-unknown-none-softfloat, arm86-apple-tvos a x64_XNUMX-apple-tvos. Mae'r drydedd lefel yn cynnwys cymorth sylfaenol, ond heb brofi awtomataidd a chyhoeddi adeiladau swyddogol.
Mae cyfran newydd o APIs wedi'i drosglwyddo i'r categori sefydlog, gan gynnwys sefydlogi
PathBuf ::gyda_gallu,
PathBuf ::capasiti,
PathBuf :: clir,
PathBuf :: wrth gefn,
PathBuf::reserve_exact,
PathBuf :: crebachu_i_ffitio,
{f32|f64} ::i_int_heb ei wirio,
Cynllun:: alinio_i,
Cynllun:: pad_to_align,
Cynllun::arae a
Cynllun:: estyn.
Swyddogaethau estynedig y llyfrgell safonol:
Ychwanegwyd amrywiad "vec![]" arbennig sy'n cael ei adlewyrchu'n uniongyrchol yn Vec::new(), sy'n caniatáu i "vec![]" gael ei ddefnyddio yn ei gyd-destun yn lle cysonion.
Mae gweithrediad (impl) o'r nodwedd wedi'i ychwanegu i drosi::Anffaeledig Hash.
Mae OsString yn gweithredu awgrymiadau craff DerefMut и MynegaiMut, gan ddychwelyd "&mut OsStr".
proc_macro :: Mae LexError yn gweithredu fmt ::Arddangos a Gwall.
Defnyddir y briodwedd “const”, sy'n pennu a ellir ei ddefnyddio mewn unrhyw gyd-destun yn lle cysonion, yn y dulliau from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes a to_ne_bytes ar gyfer pob math o gyfanrif.
Ychwanegwyd cefnogaeth ar gyfer cynhyrchu llyfrgelloedd sefydlog mewn fformat ".a" yn lle ".lib" ar gyfer llwyfannau GNU ar Windows.
Mae’r gofynion sylfaenol ar gyfer LLVM wedi’u codi i fersiwn LLVM 8.