Rust 1.36 Fa'apolokalame Gagana Fa'asa'oloto

lomia faasalalau fa'asa'olotoga gagana polokalame Ele 1.36, na faavaeina e le poloketi Mozilla. O le gagana e taulaʻi i le saogalemu o manatuaga, e maua ai le pulega otometi manatua, ma maua ai se auala e ausia ai le maualuga o galuega tutusa e aunoa ma le faʻaogaina o le lapisi poʻo le taʻavale.

Ole pulega otometi a le Rust e fa'asa'olotoina ai le tagata e faia le fa'aogaina o le fa'asinomaga ma puipuia mai fa'afitauli e tula'i mai i le fa'aogaina o mafaufauga maualalo, e pei ole fa'aogaina ole manatua e leai se totogi, fa'aletonu le fa'asinoala, fa'alavelave fa'alavelave, ma isi mea faapena. O lo'o fa'atupuina se pule o pusa e tufatufa faletusi, fa'amautinoa le fa'apotopotoina ma fa'afoe fa'alagolago e le poloketi. uta, e mafai ai ona e mauaina faletusi e manaʻomia mo le polokalame i le kiliki e tasi. E lagolagoina se fale teu oloa e talimalo ai faletusi crates.io.

tele mea fou:

  • Fa'amautu uiga lumanaʻi, o lo'o fa'atusalia ai se tau e le'i mae'a le iloiloga a'o fa'aogaina poloka async / .await. Asynchronous tau faʻamalamalamaina e faʻaaoga ai le Lumanai e mafai ai ona faʻaauau le faʻatinoina o galuega aoga i le filo, aʻo faʻatali i le taimi lava e tasi mo le maeʻa o faʻatusatusaga o se tau aoga;
  • Faletusi mautu tofi, lea e tu'uina atu ai fa'amatalaga atamai ma fa'aputuga mo le fa'afoeina o tau fa'asoaga manatua. Fa'asoaga manatua i std ua fa'aaoga nei le ituaiga Vec, o lo'o toe fa'afo'i atu mai alloc. O le fa'aogaina tu'ufa'atasi o le alloc e talafeagai i talosaga e le'o nonoa i le std ("#![no_std]"), fa'apea fo'i ma faletusi ua fa'atulagaina mo le fa'aogaina i polokalame fa'apena e aunoa ma le std;
  • Le pasi siaki mo sa'o amatalia o tau fautuaina ituaiga vaeluagalemu Masalo Iuni, lea e mafai ona fa'aoga nai lo le mem :: uninitialized galuega e avea o se filifiliga saogalemu. O le mem :: galuega e leʻi amataina e faigofie mo le vave faia o faʻasologa, ae e faʻasesēina le tuʻufaʻatasia aua e foliga mai na amataina, ae o le mea moni o le tau e tumau pea le le faʻamaonia. MaybeUninit e faʻatagaina oe e faʻaalia manino i le tuʻufaʻatasiga o le tau e leʻi faʻamaonia, ia amanaʻia amioga e le faʻamalamalamaina e fesoʻotaʻi ma lenei mea, ma faʻapipiʻi siaki i polokalame e ala i le "maybe_t:" ma le laasaga taʻitasi, faʻailogaina lona maeʻa. fa'aaoga le ".assume_init()" valaau. Faatasi ai ma le oʻo mai o MaybeUninit, o le mem :: uninitialized function ua faʻaumatia ma e le fautuaina mo le faʻaaogaina;
  • O le NLL (Non-Lexical Lifetimes) metotia, lea na faʻalauteleina ai le faiga mo le faʻamauina o le olaga o suiga nono, ua faʻamautuina mo le gagana Rust 2015 (muamua, NLL na lagolagoina e Rust 2018). Nai lo le fa'atinoina o le olaga i le tulaga fa'aupuga, e faia e le NLL i le tulaga o le seti o fa'ailoga i le kalafi fa'atinoina. O lenei auala e mafai ai e oe ona faʻaleleia le tulaga lelei o le siakiina o le nono o fesuiaiga (borrow checker) ma faʻatagaina le faʻatinoina o nisi o ituaiga o code saʻo, o le faʻaaogaina lea na taʻitaʻia muamua i se mea sese. O le amio fou fo'i ua fa'afaigofieina ai le fa'apalapala;
  • Fa'atinoina fou o fa'asologa fa'atasi e aofia ai Faʻafanua, faʻavae i luga o le faʻaogaina o le fausaga Suiselani Laulau (otometi ona uta hashbrown :: HashMap, se'i vagana ua fa'ailoa manino mai, e pei o le std :: HashMap, lea e fa'avae ile SipHash 1-3). O loʻo tumau pea le fesoʻotaʻiga faʻapipiʻi, ma o eseesega e vaʻaia e le tagata faʻapipiʻi e faʻafefe i lalo i le faʻatupulaia o le faʻatinoga ma faʻaitiitia le faʻaaogaina o mafaufauga;
  • I totonu o le pusa pule uta uta faaopoopo le "--offline" filifiliga, lea e mafai ai ona faʻaogaina e aunoa ma le mauaina o le fesoʻotaʻiga, lea e naʻo afifi o loʻo teuina i totonu o le lotoifale e faʻaaogaina pe a faʻapipiʻi faʻalagolago. Afai o le fa'alagolago e le oi totonu o le fa'aoga fa'apitonu'u, o le a lafo se mea sese. Ina ia mua'i fa'apipi'i fa'alagolago i totonu o le fa'apitonu'u a'o le'i alu tuusa'o, e mafai ona e fa'aogaina le fa'atonuga o le "aveina uta";
  • Faʻatinoina le tomai e valaʻau ai le macro "dbg!" faailoa mai ni finauga;
  • O le uiga "const", lea e fuafua ai le avanoa e faʻaoga ai i soʻo se faʻamatalaga nai lo le tumau, e faʻaaogaina mo metotia.
    Fa'atonu::from_size_align_unchecked,
    mem::needs_drop,
    NonNull:: tautau ma
    NonNull::cast;

  • O se vaega fou o API ua tuʻuina atu i le vaega mautu, e aofia ai metotia ua faʻamautuina
    galuega::Waker, galuega::Poll,
    VecDeque:: rotate_left, VecDeque:: rotate_right,
    Faitau::faitau_vectored, Tusi::tusi_vectored,
    Toe fai::kopi,
    BorrowMut (mo manoa) ma str::as_mut_ptr.

puna: opennet.ru

Faaopoopo i ai se faamatalaga