Sgaoileadh cànain prògramaidh Rust 1.47

Chaidh foillseachadh 1.47 de chànan prògramadh siostam Rust, a chaidh a stèidheachadh le pròiseact Mozilla, 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’ 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. Gus leabharlannan a sgaoileadh, dèanamh cinnteach à co-chruinneachadh agus riaghladh eisimeileachd, tha 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:

  • Taic air a chuir an gnìomh airson comharran airson arrays de mheud neo-riaghailteach. Roimhe sin, air sgàth neo-chomas gnìomhan coitcheann a mhìneachadh airson a h-uile luach iomlan, thug an leabharlann àbhaisteach seachad taic tarraing a-steach a-mhàin airson arrays suas gu 32 eileamaid ann am meud (bha na feartan airson gach meud air am mìneachadh gu statach). Mar thoradh air a bhith a’ cruthachadh comas-gnìomh const generics, bha e comasach gnìomhan coitcheann a mhìneachadh airson meud raon sam bith, ach chan eil iad fhathast air an toirt a-steach do fheartan seasmhach a’ chànain, ged a tha iad air an cur an gnìomh anns an inneal-cruinneachaidh agus a-nis air an cleachdadh anns an leabharlann àbhaisteach. airson seòrsaichean de dhiofar mheudan.
    Mar eisimpleir, bidh an togail a leanas ann an Rust 1.47 a’ clò-bhualadh susbaint sreath, ged a bhiodh e air mearachd adhbhrachadh roimhe seo:

fn prìomh() {
leig xs = [0; 34];
println!("{:?}", xs);
}

  • Cho fad ‘s a bheirear a-mach lorgan nas giorra (backtrace), toradh ann an suidheachaidhean èiginneach. Tha eileamaidean nach eil inntinneach anns a 'mhòr-chuid de shuidheachaidhean, ach a tha a' cur dragh air an toradh agus a 'tarraing aire bho phrìomh adhbharan na trioblaid, air an dùnadh a-mach às an lorg. Airson lorg slàn a thilleadh, 's urrainn dhut caochladair na h-àrainneachd "RUST_BACKTRACE=làn" a chleachdadh. Mar eisimpleir, airson a 'chòd

fn prìomh() {
maoim!();
}

Roimhe sin, chaidh an lorg a chuir a-mach ann an 23 ìrean, ach a-nis thèid a lughdachadh gu 3 ìrean, a ’toirt cothrom dhut grèim fhaighinn air brìgh sa bhad:

bha an t-snàthainn 'prìomh' a' clisgeadh aig 'explicit panic', src/main.rs:2:5
cùl-stoc:
0: std :: clisgeadh :: begin_panic
aig /rustc/d…d75a/library/std/src/panicking.rs:497
1: raon-cluiche:: prìomh
aig ./src/main.rs:2
2: cridhe :: ops :: gnìomh :: FnOnce :: call_once
aig / rustc/d…d75a/library/core/src/ops/function.rs:227

  • Chaidh an compiler rustc ùrachadh gus a thogail a’ cleachdadh LLVM 11 (bidh Rust a’ cleachdadh LLVM mar chùl-taic airson gineadh còd). Aig an aon àm, tha an comas togail le seann LLVM, suas ri dreach 8, air a ghleidheadh, ach gu bunaiteach (ann an rust-lang/llvm-project) LLVM 11 a-nis air a chleachdadh. Tha dùil gun tèid LLVM 11 a leigeil ma sgaoil san àm ri teachd. làithean.
  • Air àrd-ùrlar Windows, tha an compiler rustc a’ toirt seachad taic airson a bhith a’ comasachadh sgrùdaidhean ionracas sruthadh smachd (Control Flow Guard), air a chuir an gnìomh a’ cleachdadh a’ bhratach “-C control-flow-guard”. Air àrd-ùrlaran eile thathas a’ seachnadh a’ bhratach seo airson a-nis.
  • Chaidh cuibhreann ùr den API a ghluasad chun roinn stàbaill, a’ gabhail a-steach Aithne seasmhach :: new_raw, Range:: is_empty, RangeInclusive :: is_empty, Toradh :: as_deref, Toradh :: as_deref_mut, Vec :: aodion, puing :: offset_from , f32 :: TAU agus f64 ::TAU.
  • Tha am feart “const”, a tha a’ dearbhadh comasachd a chleachdadh ann an co-theacsa sam bith an àite seasmhach, air a chleachdadh anns na dòighean:
    • ùr airson a h-uile h-iomlan ach a-mhàin neoni;
    • checked_add, checked_sub, checked_mul, checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub agus saturating_mul airson a h-uile iomlan;
    • is_ascii_alphabetic, is_ascii_uppercase, is_ascii_lowercase, is_ascii_alphanumeric, is_ascii_digit, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii_whitespace agus is_ascii_control airson seòrsaichean char agus u8.
  • Airson FreeBSD, tha an inneal bho FreeBSD 11.4 air a chleachdadh (chan eil FreeBSD 10 a’ toirt taic do LLVM 11).

Air a thoirt bho fosgailtenet.ru

Source: linux.org.ru

Cuir beachd ann