Sgaoileadh cànain prògramaidh Rust 1.34

thachair sgaoileadh cànan prògramadh siostam Meirge 1.34, air a leasachadh le 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 dòigh air co-shìnteachd àrd-obrach a choileanadh gun a bhith a’ cleachdadh inneal-cruinneachaidh sgudail no ùine ruith.

Bidh riaghladh cuimhne fèin-ghluasadach Rust a’ saoradh an leasaiche bho làimhseachadh phuing agus a’ dìon an aghaidh dhuilgheadasan ag èirigh bho làimhseachadh cuimhne aig ìre ìosal, leithid slighean cuimhne às deidh an-asgaidh, ro-aithrisean puing null, cus bufair, agus an leithid. 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.

prìomh innleachdan:

  • Tha manaidsear pacaid Cargo air innealan a chuir ris gus obrachadh le clàran pacaid eile a dh’ fhaodas a bhith còmhla ri clàr poblach crates.io. Mar eisimpleir, faodaidh luchd-leasachaidh thagraidhean seilbh a-nis an clàr prìobhaideach aca fhèin a chleachdadh, a dh'fhaodar a chleachdadh nuair a tha iad a’ clàradh eisimeileachd ann an Cargo.toml, agus modal dreach coltach ri crates.io a chuir an sàs airson am bathar, a bharrachd air a bhith a’ toirt iomradh air eisimeileachd air an dà chlàr. io agus do d' chlàir fèin.

    Gus clàran taobh a-muigh a chur ri .cargo/config (suidhichte ann an $ HOME no san eòlaire pacaid)
    air a thoirt seachad earrann “[clàran]”, agus gus clàr a-muigh a chleachdadh, tha an roghainn “clàradh” air nochdadh anns an tuairisgeul air gach eisimeileachd ann an Cargo.toml. Gus ceangal ri clàr a bharrachd, dìreach cuir an comharra dearbhaidh anns an fhaidhle ~/.cargo/credentials agus ruith an àithne
    "cargo login --registry=my-registry" agus airson pasgan fhoillseachadh -
    "cargo publish -registry=my-registry";

  • Chuir sinn làn thaic ris airson a bhith a’ cleachdadh a’ ghnìomhaiche “?”. ann an deuchainnean dotairean, a’ toirt cothrom dhut còd eisimpleir a chleachdadh bho na sgrìobhainnean mar dheuchainnean. Gnìomhaiche roimhe
    "?" faodar a chleachdadh gus mearachdan a làimhseachadh rè coileanadh deuchainn a-mhàin an làthair a’ ghnìomh “fn main ()” no anns na gnìomhan “#[test]”;

  • Ann am buadhan gnàthaichte air am mìneachadh a’ cleachdadh macros modh-obrach tèarainte an comas seataichean neo-riaghailteach de chomharran a chleachdadh (“#[attr($tokens)]”, “#[attr[$tokens]] agus #[attr{$tokens}]”). Roimhe sin, cha b’ urrainnear eileamaidean a shònrachadh ach ann an cruth craoibhe/ath-chuairteachaidh le bhith a’ cleachdadh litrichean sreang, mar eisimpleir “#[foo(bar, baz(quux, foo =“bar”))]”, ach a-nis tha e comasach àireamhan a chleachdadh (’ #[raon (0. .10)]') agus structaran mar "#[bound(T: MyTrait)]";
  • Seòrsan seasmhach (feart) FeuchFrom и Feuch a-steach, a’ ceadachadh tionndaidhean seòrsa le làimhseachadh mhearachdan. Mar eisimpleir, bidh dòighean mar from_be_bytes le seòrsachan integer a’ cleachdadh arrays mar chur-a-steach, ach bidh an dàta gu tric a’ tighinn ann an seòrsa Slice, agus tha e duilich a bhith ag atharrachadh eadar arrays agus sliseagan le làimh. Le cuideachadh bho fheartan ùra, faodar an obrachadh ainmichte a dhèanamh air an itealan tro ghairm gu .try_into(), mar eisimpleir, “let num = u32::from_be_bytes(slice.try_into()?)”. Airson atharrachaidhean a bhios an-còmhnaidh soirbheachail (mar eisimpleir, bho sheòrsa u8 gu u32), chaidh seòrsa mearachd a chuir ris Do-dhèanta, a’ ceadachadh cleachdadh follaiseach
    TryFrom airson a h-uile gnìomh a tha ann mu thràth de “From”;

  • Chaidh gnìomh a dhiùltadh CommandExt ::before_exec, a leig le inneal-làimhseachaidh a chuir gu bàs mus ruith e exec, a chaidh a chuir gu bàs ann an co-theacsa pròiseas cloinne a chaidh a chuir air bhog às deidh a’ ghairm forc (). Fo chumhachan mar sin, dh’ fhaodadh cuid de ghoireasan a’ phròiseas phàrant, leithid tuairisgeulan fhaidhlichean agus raointean cuimhne mapate, a bhith air an dùblachadh, a dh’ fhaodadh leantainn gu giùlan neo-mhìnichte agus obrachadh ceàrr leabharlannan.
    Thathas a’ moladh gnìomh mì-shàbhailte a chleachdadh an àite before_exec CommandExt :: pre_exec.

  • Seòrsan àireamhan atamach soidhnichte agus gun ainm-sgrìobhte ann am meud bho 8 gu 64 pìosan (mar eisimpleir, AtamachU8), a bharrachd air seòrsachan soidhnichte Neo-ZeroI[8|16|32|64|128].
  • Chaidh cuibhreann ùr den API a ghluasad dhan roinn stàbaill, a’ gabhail a-steach an gin :: type_id, Mearachd:: type_id, slice :: sort_by_cached_key, str::escape_*, str::split_ascii_whitespace, Instant :: checked_[add|sub ] agus chaidh dòighean SystemTime a dhèanamh seasmhach :: checked_[add|sub]. Tha an iter::from_fn agus iter ::successors gnìomhan air an socrachadh;
  • Airson a h-uile seòrsa integer, tha na dòighean checked_pow, saturating_pow, wrapping_pow agus overflowing_pow air an cur an gnìomh;
  • Chuir sinn ris an comas optimizations a chomasachadh aig an ìre ceangail le bhith a’ sònrachadh an roghainn togail “-C linker-plugin-lto”.

Source: fosgailtenet.ru

Cuir beachd ann