Mwepụta asụsụ mmemme nchara 1.40

bipụtara mwepụta asụsụ mmemme sistemụ Nchara 1.40, nke Mozilla rụpụtara ya. Asụsụ ahụ na-elekwasị anya na nchekwa ebe nchekwa, na-enye njikwa ebe nchekwa akpaka, ma na-enye ngwaọrụ maka ịrụ ọrụ dị elu na-enweghị iji ihe mkpofu na oge ojiri.

Njikwa ebe nchekwa akpaghị aka nke Rust na-ahapụ onye nrụpụta na ntule ntụaka ma na-echebekwa pụọ ​​na nsogbu na-esite na ngbanwe ebe nchekwa dị ala, dị ka ịnweta ebe nchekwa anaghị akwụghị ụgwọ, ndebiri pointer null, buffer overruns, na ihe ndị ọzọ. A na-emepụta onye njikwa ngwugwu iji kesaa ọba akwụkwọ, hụ na mgbakọ na jikwaa ndabere site na ọrụ ahụ. ibu, na-enye gị ohere ịnweta ụlọ akwụkwọ ndị achọrọ maka mmemme ahụ n'otu pịa. A na-akwado ebe nchekwa iji kwado ọba akwụkwọ crates.io.

Main ihe ọhụrụ:

  • Agbakwunyere ikike akara ihe owuwu (ihe owuwu) na ọnụọgụ (enum nwere ngọngọ Variant) site na iji njirimara "#[anaghị agwụ agwụ]", nke ọ na-enye ohere n'ọdịnihu, tinye ọhụrụ ubi na nhọrọ na ekwuputara owuwu na enumerations. Dịka ọmụmaatụ, ndị na-emepụta modul nwere ihe arụrụ arụ nke nwere ubi ekwuputara n'ọhaneze nwere ike iji "#[non_exhaustive]" akara arụrụ arụ ndị nwere ike ịgbakwunye mpaghara ọhụrụ n'ọdịnihu. Ruo ugbu a, n'ọnọdụ dị otú ahụ, a manyere onye nrụpụta ka ọ họrọ n'etiti ikwupụta ubi na nzuzo na ijikọta na ndepụta ubi na-enweghị ike ịgbanwe. Àgwà ọhụrụ ahụ na-ewepụ mmachi a ma na-enye gị ohere itinye mpaghara ọhụrụ n'ọdịnihu na-enweghị ihe ize ndụ nke imebi koodu mpụga achịkọtara na mbụ. N'ime ngwugwu crate, mgbe nhọrọ dakọtara na ngalaba "match", achọrọ nkọwa doro anya nke nkpuchi "_ => {...}", na-ekpuchi oghere nwere ike ime n'ọdịnihu, ma ọ bụghị ya, a ga-egosipụta njehie mgbe ị na-agbakwunye ubi ọhụrụ.
  • agbakwunyere ike ịkpọ procedural macro mac!() n'ụdị ọnọdụ. Dịka ọmụmaatụ, ị nwere ike dee "ụdị Foo = expand_to_type!(bar)" ma ọ bụrụ na "expand_to_type" bụ nnukwu usoro.
  • Na "mpụga {...}" ngọngọ agbakwunyere ike iji usoro na àgwà macro, gụnyere "bang!()" macros, dịka ọmụmaatụ:

    iwu macro! make_item { ($ aha: ident) => {fn $aha(); } }

    mpụta {
    make_item!(alfa);
    make_item!(beta);
    }

    mpụga "C" {
    # [my_identity_macro] fn foo();
    }

  • Na macros emejuputa atumatu ike n'ịwa "macro_rules!" ọcha. Na-emepụta "macro_rules!" enwere ike ma n'ọrụ-dị ka macros ("mac!()") na macros n'ụdị àgwà ("#[mac]").
  • Na $m: meta maapụ element agbakwunyere nkwado maka ụkpụrụ ngụkọ akara aka ike ("[TOKEN_STREAM]", "{TOKEN_STREAM}" na "(TOKEN_STREAM)"), dịka ọmụmaatụ:

    iwu macro! accept_meta { ($m:meta) => {} }
    nabata_meta! ( my :: ụzọ );
    accept_meta! ( m :: ụzọ = "ọkụ" );
    nabata_meta!( my :: ụzọ ( abc ) );
    nabata_meta! ( my :: ụzọ [abc]);
    nabata_meta! ( my :: ụzọ {abc});

  • Na ọnọdụ Rust 2015, a na-enye mmepụta njehie maka nsogbu ndị achọpụtara mgbe ị na-elele nbinye nke mgbanwe (na-agbaziri agbaziri) site na iji usoro NLL (Non-Lexical Lifetimes). Na mbụ, a na-eji njehie dochie ịdọ aka ná ntị mgbe ọ na-agba ọsọ na Rust 2018 mode.
    Mgbe agbatịchara mgbanwe ahụ na ọnọdụ Rust 2015, ndị mmepe nwere ike imecha tufuo site na onye nleba ego ochie.

    Ka anyị cheta na usoro nkwenye dabere na usoro ọhụrụ maka iburu n'uche oge ndụ nke mgbanwe ndị agbaziri agbaziri mere ka o kwe omume ịchọpụta nsogbu ụfọdụ nke koodu nkwenye ochie ahụghị. Ebe ọ bụ na mmepụta njehie maka ụdị ndenye ego dị otú ahụ nwere ike imetụta ndakọrịta na koodu arụrụ mbụ, enyere ịdọ aka ná ntị na mbụ kama mmejọ.

  • Àgwà "const" ahụ, nke na-ekpebi ohere nke iji ya mee ihe n'ọnọdụ ọ bụla kama ịnọchite anya, a na-eji ọrụ is_power_of_two (maka ọnụọgụ na-edeghị aha).
  • Ebugharịla akụkụ ọhụrụ nke API gaa na ngalaba kwụsiri ike, gụnyere todo!() nnukwu macro na iberi :: ikwugharị, mem :: were, BTreeMap :: get_key_value, HashMap :: nweta_key_value, ụzọ edoziela.
    Nhọrọ :: as_deref, Nhọrọ :: as_deref_mut, Nhọrọ :: flat, UdpSocket :: peer_addr, {f32,f64} :: ịbụ_bytes, {f32,f64} ::to_le_bytes,{f32,f64} ::to_ne_bytes, {f32, f64}:: site na_be_bytes, {f32,f64}::site na_le_bytes, na {f32,f64}::site na_ne_bytes.

  • N'ime ibu njikwa ngwugwu
    emejuputa atumatu ịdọ aka ná ntị ndị nchịkọta caching na diski. Agbakwunyela nhọrọ "metadata ibu" na iwu "metadata ibu".--filter-ikpo okwu" iji gosi naanị ngwugwu ejikọta na ikpo okwu ebumnuche akọwapụtara na kọlụm mkpebi ndabere. agbakwunyere nhọrọ nhazi ụdị http.ssl iji kọwapụta ụdị TLS bara uru.
    Agbakwunyere ikike ibipụta ngalaba ahụ "dev-dabere" na-akọwapụtaghị igodo "ụdị".

  • Onye nchịkọta rustc na-enye nkwado ọkwa nke atọ maka nyiwe ebumnuche thumbv7neon-unknown-linux-musleabihf, aarch64-unknown-none-softfloat, mips64-unknown-linux-muslabi64 na mips64el-unknown-linux-muslabi64. Ọkwa nke atọ gụnyere nkwado bụ isi, mana enweghị nnwale akpaaka na mbipụta nke ụlọ ọrụ gọọmentị.

isi: opennet.ru

Tinye a comment