Sgaoileadh cànain prògramaidh Rust 1.36

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

  • Trait seasmhach Ri, a tha a’ riochdachadh luach a dh’ fhaodadh nach tèid am measadh a chrìochnachadh fhathast fhad ‘s a tha thu a’ cleachdadh blocaichean async / .await. Tha luachan asyncronach air am mìneachadh le bhith a ’cleachdadh Future ga dhèanamh comasach cumail a’ dol le bhith a ’dèanamh obair fheumail san t-snàthainn, agus aig an aon àm a’ feitheamh ri crìoch a chuir air àireamhachadh de luach sònraichte;
  • Leabharlann seasmhach alloc, a bheir seachad molaidhean snasail agus cruinneachaidhean airson a bhith a’ riaghladh luachan a tha air an riarachadh le cuimhne. Tha riarachadh cuimhne ann an std a-nis a’ cleachdadh an t-seòrsa Rud, a tha air an ath-às-mhalairt bho alloc. Tha cleachdadh air leth de alloc a’ dèanamh ciall ann an tagraidhean nach eil ceangailte ri std (“#! [no_std]”), a bharrachd air ann an leabharlannan a chaidh an dealbhadh airson an cleachdadh ann am prògraman coltach ris gun std;
  • Gus faighinn seachad air sgrùdaidhean airson tòiseachadh ceart luachan air a mholadh seòrsa eadar-mheadhanach 'S dòcha Aonad, a dh'fhaodar a chleachdadh an àite a' mhem :: gnìomh neo-aithnichte mar roghainn eile nas sàbhailte. Tha am mem :: gnìomh neo-ainmichte goireasach airson arrays a chruthachadh gu sgiobalta, ach tha e a’ mealladh an neach-cruinneachaidh oir tha e coltach gun do thòisich e, ach ann an da-rìribh tha an luach fhathast neo-aithnichte. Leigidh MaybeUninit leat innse gu soilleir don neach-cruinneachaidh gu bheil an luach neo-aithnichte, gus aire a thoirt don ghiùlan neo-mhìnichte a dh’ fhaodadh a bhith co-cheangailte ri seo, agus cuideachd sgrùdaidhean ann am prògraman a chuir air dòigh tro “is dòcha_t:" agus tòiseachadh ceum air cheum, a’ comharrachadh gun deach a chrìochnachadh. a’ cleachdadh a’ ghairm “.assume_init()”. Le teachd MaybeUninit, tha am mem::gnìomh neo-aithnichte air a dhol sìos agus chan eilear ga mholadh airson a chleachdadh;
  • Chaidh an dòigh-obrach NLL (Non-Lexical Lifetimes), a leudaich an siostam airson a bhith a’ clàradh beatha caochladairean air iasad, a dhèanamh seasmhach airson cànan Rust 2015 (an toiseach, cha robh NLL a’ faighinn taic ach bho Rust 2018). An àite a bhith a’ dèanamh fad-beatha aig ìre briathrachais, bidh NLL a’ dèanamh sin aig ìre an t-seata de chomharran anns a’ ghraf sruth-obrach. Tha an dòigh-obrach seo a 'toirt cothrom dhut àrdachadh càileachd a bhith a' sgrùdadh iasad caochladairean (seiceadair iasad) agus a 'ceadachadh cuid de chòd ceart a chur an gnìomh, a dh' adhbhraich an cleachdadh roimhe seo gu mearachd. Tha an giùlan ùr cuideachd a 'dèanamh debugging mòran nas fhasa;
  • Buileachadh ùr de chlàran ceangail air an toirt a-steach HashMap, stèidhichte air cleachdadh an structair Clàr na h-Eilbheis (air a luchdachadh gu fèin-ghluasadach hashbrown ::HashMap, mura h-eilear ag ràdh a chaochladh, leithid std::HashMap, a tha stèidhichte air SipHash 1-3). Tha an eadar-aghaidh bathar-bog fhathast mar a tha e, agus tha na h-eadar-dhealachaidhean a tha follaiseach don leasaiche a 'dol sìos gu àrdachadh coileanaidh agus lùghdachadh caitheamh cuimhne;
  • Ann an cargo manaidsear pacaid air a chur ris an roghainn “--offline”, a leigeas le obrachadh gun a bhith a’ faighinn cothrom air an lìonra, anns nach tèid ach pacaidean a tha air an tasgadh san t-siostam ionadail a chleachdadh nuair a thathar a’ stàladh eisimeileachd. Mura h-eil an eisimeileachd san tasgadan ionadail, thèid mearachd a thilgeil. Gus eisimeileachd a luchdachadh a-steach don tasgadan ionadail mus tèid thu far loidhne, faodaidh tu an àithne “cargo fetch” a chleachdadh;
  • Chuir e an gnìomh an comas am macro “dbg!” a ghairm. a' nochdadh grunn argamaidean;
  • Tha am feart “const”, a tha a’ dearbhadh comasachd cleachdadh ann an co-theacsa sam bith an àite seasmhach, air a chleachdadh airson dòighean
    Cruth :: from_size_align_unchecked,
    mem::feumalachdan_drop,
    NeoNull :: a' crochadh agus
    NeoNull ::cast;

  • Chaidh cuibhreann ùr de APIan a ghluasad chun roinn stàbaill, a’ toirt a-steach dòighean a chaidh a dhèanamh seasmhach
    obair ::Waker, tasg ::Poll,
    VecDeque :: cuairteachadh_clì, VecDeque :: rotate_right,
    Leugh::read_vectored, Sgrìobh ::write_vectored,
    Iterator :: lethbhreac,
    BorrowMut (airson teudan) agus str :: as_mut_ptr.

Source: fosgailtenet.ru

Cuir beachd ann