Mwepụta asụsụ mmemme nchara 1.57

Ntọhapụ nke asụsụ mmemme usoro Rust 1.57, nke Mozilla ngo tọrọ ntọala, ma ugbu a, nke e mepụtara n'okpuru nkwado nke otu nọọrọ onwe ya na-abụghị uru Rust Foundation, ka ebipụtara. Asụsụ a na-elekwasị anya na nchekwa ebe nchekwa, na-enye njikwa ebe nchekwa akpaka, ma na-enye ụzọ iji nweta nnukwu ọrụ myirịta na-ejighi ihe mkpofu ahịhịa ma ọ bụ oge ịgba ọsọ (oge ọ na-agba ọsọ na-ebelata ka ọ bụrụ mmalite na nhazi nke ọba akwụkwọ ọkọlọtọ).

Njikwa ebe nchekwa akpaka nke Rust na-ewepụ njehie mgbe ị na-emegharị ihe nrịbama ma na-echebe megide nsogbu na-esite na ngbanwe ebe nchekwa dị ala, dị ka ịnweta mpaghara ebe nchekwa mgbe a tọhapụrụ ya, nkwụsị pointer null, buffer overruns, wdg. Iji kesaa ọba akwụkwọ, hụ na mgbakọ na jikwaa dabere, ọrụ a na-emepe emepe njikwa ngwugwu Cargo. A na-akwado ebe nchekwa crates.io maka ọba akwụkwọ nnabata.

Isi ihe ọhụrụ:

  • Emeela ka ojiji nke nnukwu “ụjọ” ahụ kwụsie ike. n'ọnọdụ ndị emepụtara n'oge nchịkọta, dị ka nkwupụta "const fn". Ọzọkwa, na mgbakwunye na iji "egwu!" nkwupụta const na-enye ohere iji nnukwu nnukwu "nkwado!" yana ụfọdụ API ọba akwụkwọ ọkọlọtọ ndị ọzọ. Nkwụsi ike ekpuchibeghị akụrụngwa nhazi niile, yabụ n'ụdị ya ugbu a, nnukwu “egwu!” enwere ike iji naanị eriri static (ụjọ! (“…”))) ma ọ bụ jiri otu uru etinyere "&str" mgbe ọ na-anọchi anya (egwu! }" na-enweghị nhazi nkọwa na ụdị ndị ọzọ. N'ọdịnihu, a ga-agbasawanye ngwa ngwa nke macros na ọnọdụ mgbe niile, mana ikike ndị kwụsiri ike ezuolarịrị iji mee ndenye ego na ọkwa nchịkọta: const _: () = nkwupụta!(std:: mem:: size_of:: ()== 64); const _: () = kwuputa!(std:: mem:: size_of:: ()== 8);
  • Onye njikwa ngwungwu ibu na-enye ohere iji profaịlụ nwere aha aka ike, ọnweghị oke na "dev", "wepụta", "ule" na "bench". Dịka ọmụmaatụ, iji mee ka njikarịcha na ọkwa njikọ (LTO) naanị mgbe emepụtara mgbakọ ngwaahịa ikpeazụ, ị nwere ike ịmepụta profaịlụ "mmepụta" na Cargo.toml wee tinye ọkọlọtọ "lto = ezi" na ya. Agbanyeghị, mgbe ị na-akọwa profaịlụ nke gị, ị ga-ezipụta profaịlụ dị adị iji keta ntọala ndabara na ya. Ihe atụ dị n'okpuru na-emepụta profaịlụ "mmepụta" nke na-emeju profaịlụ "wepụta" site na itinye ọkọlọtọ "lto = ezi". Profaịlụ n'onwe ya na-arụ ọrụ site na ịkpọ ibu na nhọrọ "-profile mmepụta", a ga-etinyekwa ihe ndị na-eme mgbakọ na ndekọ "lekwasịrị / mmepụta". [profile.production] ketara = "nhapụ" lto = eziokwu
  • Eji try_reserve maka ụdị Vec, String, HashMap, HashSet na VecDeque kwụsie ike, nke na-enye gị ohere idobe ohere tupu oge maka ọnụọgụ ụfọdụ nke ụdị enyere iji belata ugboro nke ọrụ oke ebe nchekwa wee zere. mkpọka n'oge ọrụ n'ihi enweghị ebe nchekwa.
  • A na-ahapụ ya ka ọ kọwaa macro nwere ihe nkwado na-agbagọ n'okwu dịka "m!{ .. }. Method()" na "m!{ .. }?".
  • Edozila mmezu nke faịlụ :: read_to_end na read_to_string arụ ọrụ.
  • Emelitela nkwado maka nkọwapụta Unicode ka ọ bụrụ ụdị 14.0.
  • Gbasawanye ọnụọgụ ọrụ akara "#[must_use]" iji nye ịdọ aka ná ntị ma ọ bụrụ na eleghara uru nloghachi anya, nke na-enyere aka chọpụta njehie kpatara site na iche na ọrụ ga-agbanwe ụkpụrụ kama ịlaghachi uru ọhụrụ.
  • agbakwunyere nnwale nkwado maka ọgbọ koodu na-eji libgccjit.
  • Atụgharịla akụkụ ọhụrụ nke API n'ụdị nke kwụsiri ike, gụnyere ụzọ na mmejuputa omume nke ejiri mesie ike:
    • [T; N] :: as_mut_slice
    • [T; N] :: dị ka slice
    • mkpokọta ::GbalịaErrọr
    • HashMap:: try_reserve
    • HashSet:: try_reserve
    • Ụdọ :: try_reserve
    • Ụdọ :: try_reserve_exact
    • Vec:: try_reserv
    • Vec:: try_reserve_exact
    • VecDeque:: try_reserve
    • VecDeque:: try_reserve_exact
    • Iterator :: map_mgbe
    • ihe :: MapMgbe
    • proc_macro :: dị_dị
    • Iwu :: nweta_program
    • Iwu :: nweta_args
    • Iwu :: nweta_envs
    • Iwu :: nweta_current_dir
    • CommandArgs
    • CommandEnvs
  • A na-eji njirimara "const", nke na-ekpebi ma enwere ike iji ya mee ihe n'ọnọdụ ọ bụla kama ịnọchite anya, na njirimara ọrụ :: unreachable_unchecked.
  • Emejuputala ọkwa nkwado nke atọ maka armv6k-nintendo-3ds, armv7-unknown-linux-uclibceabihf, m68k-unknown-linux-gnu, aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-eabi na armv7a-kmc- solid_asp3-eabihf nyiwe. Ọkwa nke atọ gụnyere nkwado bụ isi, mana na-enweghị nnwale akpaaka, na-ewu ụlọ ọrụ na-ebipụta, ma ọ bụ lelee ma enwere ike iwu koodu ahụ.

isi: opennet.ru

Tinye a comment