Rust 1.35 Ukukhishwa Kolimi Lokuhlela

kwenzeka ukukhululwa kolimi lokuhlela uhlelo Ukugqwala 1.35, ithuthukiswe iphrojekthi ye-Mozilla. Ulimi lugxile ekuphepheni kwenkumbulo, luhlinzeka ngokuphathwa kwenkumbulo okuzenzakalelayo, futhi lunikeza izindlela zokufinyelela ukufana kwemisebenzi ephezulu ngaphandle kokusebenzisa umqoqi kadoti noma isikhathi sokusebenza.

Ukuphathwa kwenkumbulo okuzenzakalelayo kwe-Rust kukhulula umthuthukisi ekukhohlisweni kwezikhombisi futhi kuvikele ezinkingeni ezivela ekukhohlisweni kwenkumbulo yezinga eliphansi, njengokufinyelela kwememori yangemuva kwamahhala, izinkomba ezingenalutho, ukugcwala kwebhafa, nokunye okunjalo. Umphathi wephakheji uyathuthukiswa ukuze asabalalise imitapo yolwazi, aqinisekise ukuhlanganisa nokuphatha ukuncika ngephrojekthi. cargo, okukuvumela ukuthi uthole amalabhulali adingekayo ohlelweni ngokuchofoza okukodwa. Indawo yokugcina isekelwa ukuze isingathe amalabhulali amakhreyithi.io.

main emisha:

  • Izici FnOnce, FnMut и Fn isetshenziselwe ukwabiwa kwenqwaba izinhlobo zamabhokisi Box‹dyn FnOnce›, Box‹dyn FnMut› kanye ne-Box‹dyn Fn›;
  • Kwengeziwe ithuba ukuvalwa kokusakaza ezikhombi zokusebenza ezingaphephile (i-fn engaphephile);
  • Isebenzise ikhono lokubiza i-macro "dbg!" ngaphandle kwezimpikiswano zokubonisa igama lefayela nenombolo yomugqa ku-stderr ngaphandle kokuhlola okuguquguqukayo, okulungele ukulungisa iphutha lokusebenza kwezinkulumo ezinemibandela;
  • Indlela eyengeziwe " ezinhlotsheni zamaphoyinti antantayo u-f32 no-f64uphawu lokukopisha»ukukopisha uhlamvu kusuka enombolweni eyodwa kuya kwenye;
  • Indlela eyengeziwe "iqukethe“, okukuvumela ukuthi uhlole ukuthi inani elishiwo lingaphakathi kobubanzi;
  • Indlela eyengeziwe Ref:Iseli:map_split, okukuvumela ukuthi ubonise futhi uhlukanise inani le-RefCell elibolekiwe lezingxenye ezihlukene zedatha ebolekiwe;
  • Indlela eyengeziwe RefCell::replace_with ukufaka esikhundleni senani lamanje le-RefCell futhi ubuyisele inani elidala njengomphumela;
  • Indlela eyengeziwe pr::hashi ukuthola i-pointer noma ireferensi ngekheli kunevelu eqondisiwe;
  • Indlela eyengeziwe Inketho::ikopishiwe ukukopisha okuqukethwe koKhetho‹&T› noma Inketho‹&mut T› ongakhetha kukho;
  • Ingxenye entsha yama-API idluliselwe esigabeni esizinzile, okuhlanganisa nezindlela ezizinzile
    f32::uphawu lwekhophi,
    f64::uphawu lwekhophi,
    I-RefCell::buyisela_nge,
    RefCell::map_split,
    ptr::hashi,
    Ibanga::liqukethe,
    UbubanziKusuka::kuqukethe,
    UbubanziKu::iqukethe,
    Ibanga elihlanganisiwe::liqukethe,
    I-RangeToInclusive::iqukethe futhi
    Inketho::ikopishiwe;

  • Kwengezwe isheke le-drop_bounds ku-clippy (linter), eqalwa lapho wengeza isibopho esithi “T: Drop” kumsebenzi;
  • Umdidiyeli wengeze usekelo lwenkundla entsha eqondiwe
    wasm32-unknown-wasi (interface WASI ukusebenzisa i-WebAssembly ngaphandle kwesiphequluli);

  • Ikhithi yamathuluzi ye-Rust iguqulelwe ukuze isatshalaliswe ngokusekelwe kumtapo wezincwadi ojwayelekile we-C Musl.

Source: opennet.ru

Engeza amazwana