Sgaoileadh cànain prògramaidh Rust 1.40

foillsichte sgaoileadh cànan prògramadh siostam Meirge 1.40, 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 innealan airson co-shìnteachd àrd-obrach a choileanadh gun a bhith a’ cleachdadh inneal-cruinneachaidh sgudail agus ù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:

  • Chuir sinn ris a’ chomas structaran (structar) agus àireamhan a chomharrachadh (enum le bloc caochlaideach) a’ cleachdadh a’ bhuadh "#[neo-iomlan]", a tha Tha e a 'toirt cothrom san àm ri teachd, cuir raointean agus roghainnean ùra ri structaran agus àireamhan dearbhte. Mar eisimpleir, faodaidh luchd-leasachaidh mhodalan aig a bheil structaran le raointean a chaidh ainmeachadh gu poblach “#[non_exhaustive]” a chleachdadh gus structaran a chomharrachadh a dh’ fhaodadh raointean ùra a chur ris san àm ri teachd. Gu ruige seo, anns an t-suidheachadh seo, b’ fheudar don leasaiche taghadh eadar raointean ainmeachadh gu prìobhaideach agus ceangaltach ri liosta raointean nach gabh atharrachadh. Bidh am feart ùr a’ toirt air falbh a’ chuingealachadh seo agus a’ leigeil leat raointean ùra a chur ris san àm ri teachd gun chunnart gun tèid còd a-muigh a chaidh a chur ri chèile roimhe a bhriseadh. Ann am pasganan crate, nuair a thathar a’ maidseadh roghainnean san roinn “maids”, tha feum air mìneachadh soilleir air a’ masg “_ => {...}”, a’ còmhdach raointean a dh’ fhaodadh a bhith ann san àm ri teachd, air neo thèid mearachd a thaisbeanadh nuair a chuireas tu raointean ùra ris.
  • Air a chur ris an comas am macro modh-obrach a ghairm!() ann an co-theacs seòrsa. Mar eisimpleir, faodaidh tu a-nis sgrìobhadh “type Foo = expand_to_type! (bar);” ma tha “expand_to_type” na mhacra modh-obrach.
  • Ann am blocaichean "taobh a-muigh { ... }". air a chur ris an comas macros modhan-obrach agus buadhan a chleachdadh, a’ toirt a-steach macros “bang! ()”, mar eisimpleir:

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

    taobh a-muigh {
    dèan_item!(alpha);
    dèan_item!(beta);
    }

    taobh a-muigh "C" {
    #[my_aithne_macro] fn foo();
    }

  • Ann am macros air a chur an gnìomh comas eileamaidean “macro_rules!” a ghineadh. A' gineadh "macro_rules!" comasach an dà chuid ann am macros coltach ri gnìomh (“mac! ()”) agus ann am macros ann an cruth buadhan (“#[mac]”).
  • Anns an eileamaid mapaidh $m:meta air a chur ris taic airson luachan àireamhachd tòcan neo-riaghailteach ("[TOKEN_STREAM]", "{TOKEN_STREAM}" agus "(TOKEN_STREAM)"), mar eisimpleir:

    macro_riaghailtean! accept_meta { ($m:meta) => {} }
    accept_meta! ( mo :: slighe );
    accept_meta!( my::path = "lit" );
    accept_meta! ( mo :: slighe ( a b c ) );
    accept_meta! ( mo :: slighe [ a b c ] );
    accept_meta! ( mo :: slighe { a b c } );

  • Ann am modh Rust 2015, tha toradh mearachd air a chomasachadh airson duilgheadasan a chaidh an comharrachadh nuair a thathar a’ sgrùdadh iasad caochladairean (dearbhaidh iasad) a’ cleachdadh an dòigh NLL (Non-Lexical Lifetimes). Roimhe sin, chaidh mearachdan a chuir an àite rabhaidhean nuair a bha iad a’ ruith ann am modh Rust 2018.
    Às deidh an atharrachadh a leudachadh gu modh Rust 2015, bha e comasach dha luchd-leasachaidh mu dheireadh faighinn cuidhteas bhon t-seann neach-dearbhaidh iasad.

    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 am feart “const”, a tha a’ dearbhadh comasachd a chleachdadh ann an co-theacs sam bith an àite a bhith seasmhach, air a chleachdadh airson gnìomh is_power_of_two (airson slàn-àireamhan gun ainm).
  • Chaidh cuibhreann ùr den API a ghluasad chun roinn stàbaill, a’ gabhail a-steach an todo! () macro agus an sliseag :: ath-aithris, mem :: gabh, BTreeMap :: get_key_value, HashMap ::get_key_value, chaidh dòighean a dhèanamh seasmhach.
    Roghainn:: as_deref, Roghainn:: as_deref_mut, Roghainn:: rèidh, UdpSocket::peer_addr, {f32,f64} :: to_be_bytes, {f32,f64} :: to_le_bytes,{f32,f64} :: to_ne_32bytes, {f64,f32} f64} :: bho_be_bytes, {f32,f64} :: bho_le_bytes, agus {fXNUMX,fXNUMX} :: bho_ne_bytes.

  • Ann an cargo manaidsear pacaid
    air a chur an gnìomh caching rabhaidhean compiler air diosc. Chuir sinn an roghainn “meata-dàta cargo” ris an àithne “meata-dàta cargo”.--filter-àrd-ùrlar" gus dìreach pacaidean a tha ceangailte ris an àrd-ùrlar targaid ainmichte a shealltainn sa cholbh fuasglaidh eisimeileachd. Chaidh roghainn rèiteachaidh http.ssl-version a chur ris gus dreachan dligheach TLS a mhìneachadh.
    Chuir sinn ris a’ chomas an earrann fhoillseachadh “dev-eisimeileachd" gun a bhith a' sònrachadh an iuchair "version".

  • Bidh an compiler rustc a’ toirt seachad taic treas ìre airson àrd-ùrlaran targaid thumbv7neon-unknown-linux-musleabihf, aarch64-unknown-none-softfloat, mips64-unknown-linux-muslabi64 agus mips64el-unknown-linux-muslabi64. 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