Sgaoileadh cànain prògramaidh Rust 1.39

foillsichte sgaoileadh cànan prògramadh siostam Meirge 1.39, 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 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:

  • Stabailte co-chòrdadh prògramadh asyncronach ùr stèidhichte air a’ ghnìomh “async”, an gluasad async { ... } bloc, agus an gnìomhaiche “.await”, a tha ga dhèanamh nas fhasa làimhseachadh a sgrìobhadh nach cuir bacadh air a’ phrìomh shruth àithne. An coimeas ris an API a chaidh a thabhann roimhe airson I/O asyncronach, tha togalaichean async/.await sìmplidh a thuigsinn, gu math furasta a leughadh, agus a’ toirt cothrom dhut eadar-obrachaidhean asyncronach iom-fhillte a chuir an gnìomh a’ cleachdadh dòighean smachd sruthadh eòlach stèidhichte air lùban, aithrisean cumhach, agus eisgeachdan.

    Leigidh co-chòrdadh Async-await leat gnìomhan a chruthachadh a chuireas stad air an coileanadh, smachd a thilleadh chun phrìomh snàithlean, agus an uairsin ath-thòiseachadh gu bàs bhon àite far an do dh'fhalbh iad. Mar eisimpleir, tha feum air stad mar sin nuair a thathar a’ giullachd I/O, far an gabh obair eile a dhèanamh fhad ‘s a thathar a’ feitheamh ris an ath phìos dàta a ruighinn. Bidh gnìomhan agus blocaichean air am mìneachadh le “async fn” agus “async move” a’ tilleadh feart Ri, a tha a’ mìneachadh riochdachadh àireamhachaidh asyncronach dàil. Faodaidh tu àireamhachadh dàil a thòiseachadh gu dìreach agus an toradh fhaighinn leis a’ ghnìomhaiche “.await”. Cha tèid gnìomh sam bith a dhèanamh no ro-phlanadh gus an tèid .await a ghairm, a’ leigeil le togalaichean neadachaidh iom-fhillte a bhith air an cruthachadh gun chosgais a bharrachd.

    async fn first_function() -> u32 { .. }
    ...
    leig san àm ri teachd = first_function ();
    ...
    leig toradh: u32 = future.await;

  • Stabailte "#![feart(bind_by_move_pattern_guards)]", a' ceadachadh caochladairean a chleachdadh leis an t-seòrsa ceangail"seach-ghluasad" ann an teamplaidean agus cleachd iomraidhean air na caochladairean sin san earrann "if" den abairt"matches". Mar eisimpleir, tha na togalaichean a leanas a-nis ceadaichte:

    fn prìomh() {
    leig seachad rèite: Bogsa = Bogsa:: ùr ([8, 4, 1, 2]);

    sreath maids {
    àireamhan
    ma tha nums.iter().suim ::() == 10

    => {
    tuiteam (àireamhan);
    }
    _ => do-ruigsinn!(),
    }
    }

  • Comharrachadh ceadaichte buadhan nuair a thathar a’ mìneachadh paramadairean gnìomh, dùnadh, agus comharran gnìomh. Thathas a’ toirt taic do bhuadhan cruinneachaidh cumhach (cfg, cfg_attr) a bhios a’ cumail smachd air diagnosachd tro lint (ceadaich, rabhadh, àicheadh ​​agus toirmeasg) agus buadhan gairm macro taiceil.

    fn len(
    #[cfg (uinneagan)] sliseag: &[u16], // cleachd am paramadair air Windows
    #[cfg (chan e (uinneagan))] sliseag: &[u8], // cleachdadh ann an OS eile
    ) -> cleachd {
    sliseag.len()
    }

  • Rabhadh mu dhuilgheadasan a chaidh an comharrachadh nuair a thathar a’ sgrùdadh iasad caochladairean (dearbhaidh iasad) a’ cleachdadh an dòigh NLL (Non-Lexical Lifetimes), eadar-theangaichte a-steach don roinn de mhearachdan marbhtach. Cuimhnichidh sinn gun tug an siostam dearbhaidh stèidhichte air uidheamachd ùr airson a bhith a’ toirt a-steach beatha nan caochladairean air iasad cothrom dhuinn cuid de dhuilgheadasan a chomharrachadh nach deach mothachadh leis an t-seann chòd dearbhaidh. Leis gum faodadh toradh mearachd airson leithid de sgrùdaidhean buaidh a thoirt air co-chòrdalachd le còd a bha ag obair roimhe, chaidh rabhaidhean a chuir a-mach an toiseach an àite mhearachdan. Tha rabhaidhean a-nis air an cur nan àite le mearachdan nuair a bhios iad a’ ruith ann am modh Rust 2018. Anns an ath fhoillseachadh, thèid toradh mearachd a chuir an gnìomh cuideachd ann am modh Rust 2015, a gheibh mu dheireadh cuidhteas an t-seann neach-dearbhaidh iasad;
  • Tha am feart “const”, a tha a’ dearbhadh comasachd cleachdadh ann an co-theacsa sam bith an àite seasmhach, air a chleachdadh airson na gnìomhan Vec :: ùr, String :: ùr, LinkedList :: ùr, str :: len, [T] :: len , str :: as_bytes,
    abs, wrapping_abs agus overflowing_abs;

  • Chaidh cuibhreann ùr de APIan a ghluasad chun roinn stàbaill, a’ toirt a-steach dòighean a chaidh a dhèanamh seasmhach
    Pin :: a-steach_inner, Instant :: checked_duration_since and Instant ::saturating_duration_since;

  • Tha comas aig manaidsear pacaid bathair a-nis an leudachadh “.toml” a chleachdadh airson faidhlichean rèiteachaidh. Chuir sinn taic tòiseachaidh ris airson an leabharlann àbhaisteach a thogail gu dìreach bho Cargo. Chaidh a’ bhratach “--workspace” a chur ris, a’ dol an àite a’ bhratach chonnspaideach “--all”. Chaidh raon ùr a chur ris a' mheata-dàta "fhoillseachadh“, a leigeas leat eisimeileachd fhoillseachadh le bhith a’ sònrachadh tag git agus àireamh tionndaidh. Roghainn deuchainn air a chur ris "-Ztimings" gus aithisg HTML a chruthachadh mu na h-amannan cur an gnìomh aig diofar ìrean cruinneachaidh.
  • Anns an inneal-cruinneachaidh rustc, tha teachdaireachdan breithneachaidh a’ toirt a-steach a bhith a’ bearradh earbaill còd nach eil a’ freagairt air a’ chrìoch. Thoir seachad an treas ìre de thaic airson àrd-ùrlaran targaid
    i686-unknown-uefi agus sparc64-unknown-openbsd. Tha an treas ìre a’ toirt a-steach taic bhunaiteach, ach às aonais deuchainn fèin-ghluasadach agus foillseachadh thogalaichean oifigeil.

Source: fosgailtenet.ru

Cuir beachd ann