Mwepụta asụsụ mmemme nchara 1.34

Asụsụ mmemme sistemụ Rust 1.34, nke ọrụ Mozilla mepụtara, ewepụtala. Asụsụ a na-elekwasị anya na nchekwa ebe nchekwa, na-enye njikwa ebe nchekwa akpaka, ma na-enye ụzọ iji nweta ọrụ dị elu na-enweghị iji ihe mkpofu ma ọ bụ oge ịgba ọsọ.

Njikwa ebe nchekwa akpaka nke Rust na-ahapụ onye nrụpụta n'aka ntule ma na-echebekwa nsogbu na-esite na ngbanwe ebe nchekwa dị ala, dị ka ịnweta ebe nchekwa anaghị akwụ ụgwọ, ndebiri pointer null, buffer overruns, na ihe ndị ọzọ. Iji kesaa ọba akwụkwọ, hụ na mgbakọ na jikwaa dabere, ọrụ ahụ na-emepe njikwa ngwugwu Cargo, nke na-enye gị ohere ịnweta ọba akwụkwọ achọrọ maka mmemme ahụ n'otu pịa. A na-akwado ebe nchekwa crates.io maka ọba akwụkwọ nnabata.

Isi ihe ọhụrụ:

  • Onye njikwa ngwugwu Cargo agbakwunyela ngwaọrụ iji rụọ ọrụ na ndebanye aha ngwugwu ọzọ nwere ike ibikọ ọnụ na ndekọ ọha crates.io. Dịka ọmụmaatụ, ndị na-emepụta ngwa nwe nwere ike iji ndekọ nke onwe ha, nke enwere ike iji mee ihe mgbe ị na-edepụta ihe ndabere na Cargo.toml, ma tinye ụdị nsụgharị yiri crates.io maka ngwaahịa ha, yana na-ezo aka dabere na crates abụọ. io na ndekọ aha gị.

    Ka ịgbakwunye ndekọ mpụga na ~/.cargo/config
    A na-enye nhọrọ ọhụrụ "ndebanye aha m" na ngalaba "[ndebanye aha]", na agbakwunyere nhọrọ "ọzọ-crate" iji kwuo ndekọ mpụga na ịdabere na Cargo.toml na ngalaba "[dependencies]". Iji jikọọ na ndekọ ọzọ, tinye naanị akara ngosi na faịlụ ~/.cargo/credentials wee mee iwu ahụ.
    "cargo login --registry=my-registry" na ibipụta ngwugwu -
    "ebuga mbipụta -registry=my-ndebanye aha";

  • Agbakwunyere nkwado zuru oke maka iji onye ọrụ “?”. na doctests, nke na-enye gị ohere iji koodu atụ sitere na akwụkwọ dị ka ule. Onye ọrụ mbụ
    "?" enwere ike iji dozie njehie n'oge a na-eme ule naanị n'ihu ọrụ "fn main ()" ma ọ bụ na ọrụ "#[test]";

  • N'ime njirimara omenala akọwara site na iji macros usoro, ọ ga-ekwe omume iji usoro akara aka ike ("#[attr ($ tokens)]", "#[attr[$tokens]] na #[attr{$tokens}]") . Na mbụ, naanị ihe nwere ike ịkọwapụta naanị n'ụdị osisi / recursive site na iji eriri nkịtị, dịka ọmụmaatụ “#[foo(bar, baz(quux, foo = “bar”))]”, mana ugbu a enwere ike iji ọnụọgụgụ (' #[oke (0. .10)]') na ihe owuwu dịka "#[bound(T: MyTrait)]";
  • Ejila àgwà TryFrom na TryInto kwụsie ike, na-enye ohere mgbanwe ụdị na njikwa njehie. Dịka ọmụmaatụ, usoro dị ka from_be_bytes nwere ụdị integer na-eji arrays dị ka ntinye, mana data na-abịakarị n'ụdị Mpekere, na ịtụgharị n'etiti arrays na mpekere bụ nsogbu iji aka mee. Site n'enyemaka nke àgwà ọhụrụ, enwere ike ịrụ ọrụ ahụ akọwapụtara na ofufe site na oku na-aga .try_into (), dịka ọmụmaatụ, "let num = u32 :: from_be_bytes(slice.try_into ()?)". Maka ntughari na-aga nke ọma mgbe niile (dịka ọmụmaatụ, site na ụdị u8 ruo u32), agbakwunyere ụdị njehie na-adịghị emebi emebi iji nye ohere iji nke ọma mee ihe.
    Gbalịa si maka mmemme niile dị na "Si";

  • Akwụsịla CommandExt :: tupu_exec ọrụ, nke kwere ka e gbuo onye na-ahụ maka ọrụ tupu emee nke e gburu n'ọnọdụ nke usoro nwatakịrị a kwụsịrị mgbe ndụdụ (). N'okpuru ọnọdụ ndị dị otú ahụ, ụfọdụ ihe onwunwe nke usoro nne na nna, dị ka ndị na-akọwa faịlụ na ebe nchekwa mapụtara, nwere ike ịmegharị ya, nke nwere ike iduga omume na-akọwaghị ya na arụ ọrụ na-ezighị ezi nke ụlọ akwụkwọ.
    Kama tupu_exec, a na-atụ aro ka iji ọrụ na-adịghị ize ndụ CommandExt :: pre_exec.

  • Ụdị integer atọ mbinye aka na nke enweghị mbinye aka sitere na nha site na 8 ruo 64 (dịka ọmụmaatụ, AtomicU8), yana ụdị mbinye aka NonZeroI[8|16|32|54|128].
  • Ebugharịla akụkụ ọhụrụ nke API gaa na ngalaba kwụsiri ike, gụnyere Ọ bụla :: ụdị_id, Error :: ụdị_id, iberi :: ụdị_by_cached_key, str :: Escape_*, str :: Split_ascii_whitespace, Ozugbo :: checkcked_[gbakwunye|sub] ] na usoro SystemTime ka edoziela :: checkcked_[gbakwunye | sub]. The iter :: from_fn na iter :: ọrụ ndị na-aga nke ọma ka edozila;
  • Maka ụdị integer niile, a na-emejuputa usoro checked_pow, saturating_pow, wrapping_pow na overflowing_pow;
  • Agbakwunyere ikike iji mee ka njikarịcha na ọkwa njikọ site na ịkọwapụta nhọrọ “-C linker-plugin-lto” (rustc na-achịkọta koodu Rust n'ime LLVM bitcode, nke na-enye ohere itinye njikarịcha LTO).

isi: opennet.ru

Tinye a comment