Rust 1.40 scaoileadh teanga cláir

foilsithe scaoileadh teanga ríomhchláraithe an chórais Meirge 1.40, a bhunaigh an tionscadal Mozilla. Díríonn an teanga ar shábháilteacht chuimhne, soláthraíonn sé bainistíocht cuimhne uathoibríoch, agus soláthraíonn sé uirlisí chun comhthreomhaireacht tasc ard a bhaint amach gan úsáid a bhaint as bailitheoir truflais agus runtime.

Déanann bainistíocht cuimhne uathoibríoch Rust an forbróir a shaoradh ó ionramháil pointeora agus cosnaíonn sé i gcoinne fadhbanna a eascraíonn as ionramháil cuimhne ísealleibhéil, amhail rochtain saor ó chuimhne iar-saor in aisce, dereferences pointeoir nialasach, róchaiteachas maoláin, agus a leithéidí. Tá bainisteoir pacáiste á fhorbairt chun leabharlanna a dháileadh, tionól a chinntiú agus spleáchais an tionscadail a bhainistiú. Cargo, rud a ligeann duit na leabharlanna atá ag teastáil don chlár a fháil i gcliceáil amháin. Tacaítear le stór chun leabharlanna a óstáil cliathbhoscaí.io.

An príomh- nuálaíochtaí:

  • Cuireadh leis an gcumas chun struchtúir (struct) agus áirimh a mharcáil (enum le bloc Athraithe) ag baint úsáide as an aitreabúid "#[neamh-uileghabhálach]", a Ceadaíonn sa todhchaí, cuir réimsí agus roghanna nua le struchtúir agus áireamhachtaí dearbhaithe. Mar shampla, is féidir le forbróirí modúl a bhfuil struchtúir acu le réimsí atá fógartha go poiblí "#[non_exhaustive]" a úsáid chun struchtúir a d'fhéadfadh réimsí nua a chur leis amach anseo a mharcáil. Go dtí seo, sa chás seo, b'éigean don fhorbróir rogha a dhéanamh idir réimsí a dhearbhú go príobháideach agus a bheith ceangailteach le liosta neamh-inmharthana réimsí. Baineann an tréith nua an teorannú seo agus ligeann duit réimsí nua a chur leis sa todhchaí gan an baol go mbrisfidh tú cód seachtrach a tiomsaíodh roimhe seo. I bpacáistí cliathbhosca, agus roghanna á gcomhoiriúnú sa rannán “meaitseáil”, tá gá le sainmhíniú sainráite ar an masc “_ => {...}”, a chlúdaíonn réimsí féideartha amach anseo, nó taispeánfar earráid agus réimsí nua á gcur leis.
  • Curtha leis an cumas an mac macra nós imeachta a ghlaoch!() i gcomhthéacs cineáil. Mar shampla, is féidir leat “cineál Foo = expand_to_type! (barra);” a scríobh anois más macra nós imeachta é “expand_to_type”.
  • I mbloic "seachtrach { ... }". curtha leis an cumas macraí nós imeachta agus tréithe a úsáid, lena n-áirítear macraí “bang!()”, mar shampla:

    macra_rialacha! make_item { ($name:ident) => { fn $name(); } }

    seachtrach {
    déan_ítim!(alfa);
    déan_ítim!(béite);
    }

    seachtrach "C" {
    #[my_aitheantas_macro] fn foo();
    }

  • I macraí curtha i bhfeidhm cumas eilimintí “macro_rules!” a ghiniúint. Ag giniúint "macro_rules!" is féidir araon i macraí feidhmithe (“mac!()”) agus i macraí i bhfoirm tréithe (“#[mac]”).
  • San eilimint mhapála $m:meta curtha leis tacaíocht do luachanna áirimh dearbháin ("[TOKEN_STREAM]", "{TOKEN_STRREAM}" agus "(TOKEN_STRREAM)"), mar shampla:

    macra_rialacha! accept_meta { ($m:meta) => {} }
    glac_meta!( mo:: cosán );
    accept_meta!( mo:: cosán = "lit" );
    glac_meta!( mo:: cosán (abc) );
    glac_meta!( mo:: cosán [ abc ] );
    glac_meta!( mo:: cosán { abc } );

  • I mód Rust 2015, cumasaítear aschur earráide le haghaidh fadhbanna a aithníodh nuair a bhíonn iasacht na n-athróg á sheiceáil (seiceálaí iasachta) ag baint úsáide as an teicníc NLL (Neamhfhoclóir Saoil). Roimhe seo, cuireadh earráidí in ionad rabhaidh agus iad ag rith i mód Rust 2018.
    Tar éis an t-athrú a leathnú go dtí an modh Rust 2015, bhí na forbróirí in ann ar deireadh fáil réidh le ón sean-seiceálaí iasachtaí.

    Meabhraímid gur féidir roinnt fadhbanna nár tugadh faoi deara leis an seanchód fíorúcháin a aithint mar gheall ar an gcóras fíoraithe a bhí bunaithe ar mheicníocht nua chun saolré na n-athróg a fuarthas ar iasacht a chur san áireamh. Ós rud é go bhféadfadh aschur earráide le haghaidh seiceálacha den sórt sin cur isteach ar chomhoiriúnacht leis an gcód a bhí ag obair roimhe seo, eisíodh rabhaidh ar dtús seachas earráidí.

  • Úsáidtear an aitreabúid “const”, a chinneann an bhféidearthacht é a úsáid in aon chomhthéacs seachas tairisigh, don fheidhm is_power_of_two (do shlánuimhreacha gan síniú).
  • Aistríodh cuid nua den API go dtí an chatagóir chobhsaí, lena n-áirítear an todo!() macra agus an slice::athrá, mem::take, BTreeMap::get_key_value, HashMap::get_key_value, tá na modhanna cobhsaithe.
    Rogha:: as_deref, Rogha:: as_deref_mut, Rogha:: flatten, UdpSocket ::peer_addr, {f32,f64} :: to_be_bytes, {f32,f64} :: to_le_bytes,{f32,f64} :: to_ne_32bytes, {f64,f32} f64} ::from_be_bytes, {f32,f64}::from_le_bytes, agus {fXNUMX,fXNUMX}::from_ne_bytes.

  • Sa lasta bainisteoir pacáiste
    curtha i bhfeidhm caching rabhaidh tiomsaitheora ar diosca. Cuireadh an rogha "meiteashonraí lasta" leis an ordú "meiteashonraí lasta".--scagaire-ardán" chun pacáistí atá ceangailte go dtí an sprioc-ardán sonraithe a thaispeáint sa cholún um réiteach spleáchais. Cuireadh rogha cumraíochta http.ssl-leagan leis chun leaganacha bailí TLS a shainiú.
    Cuireadh leis an gcumas an rannán a fhoilsiú "dev-spleáchais" gan an eochair "leagan" a shonrú.

  • Soláthraíonn an tiomsaitheoir rustc tacaíocht tríú leibhéal do sprioc-ardáin thumbv7neon-unknown-linux-musleabihf, aarch64-unknown-none-softfloat, mips64-unknown-linux-muslabi64 agus mips64el-unknown-linux-muslabi64. Tá tacaíocht bhunúsach i gceist leis an tríú leibhéal, ach gan tástáil uathoibrithe agus foilsiú na tógála oifigiúla.

Foinse: oscailtenet.ru

Add a comment