Puo ea Rust programming 1.36 tokollo

e hatisitsoeng tokollo ea puo ea lenaneo la sistimi Mafome 1.36, e thehiloeng ke morero oa Mozilla. Puo e shebana le polokeho ea mohopolo, e fana ka taolo ea memori ea othomathike, mme e fana ka mokhoa oa ho fihlela ts'ebetso e ts'oanang e phahameng ntle le ho sebelisa moqosi oa lithōle kapa nako ea ho sebetsa.

Taolo ea memori ea othomathike ea Rust e lokolla moqapi ho tsoa manolong a pointer le ho sireletsa khahlano le mathata a bakoang ke ho qhekella ha memori ea boemo bo tlase, joalo ka phihlello ea memori e sa lefelloeng, litšupiso tsa null pointer, buffer overruns, joalo-joalo. Motsamaisi oa liphutheloana o ntse a ntlafatsoa ho aba lilaebrari, ho netefatsa ho bokelloa le ho laola litšepe ka morero. thepa, ho u lumella ho fumana lilaebrari tse hlokahalang bakeng sa lenaneo ka ho tobetsa hanngoe feela. Sebaka sa polokelo se tšehetsoa ho amohela lilaebrari crates.io.

ka sehloohong boiqapelo:

  • Sebopeho se tsitsitse nakong e tlang, e emelang boleng boo tlhahlobo ea bona e ka 'nang ea e-s'o phethoe ha u ntse u sebelisa li-blocks tsa async / .await. Litekanyetso tsa Asynchronous tse hlalositsoeng ho sebelisoa Bokamoso li etsa hore ho khonehe ho tsoela pele ho etsa mosebetsi oa bohlokoa khoeleng, ha ka nako e ts'oanang u emetse ho phethoa ha lipalo tsa boleng bo itseng;
  • Laebrari e tsitsitse alloc, e fanang ka lintlha tse bohlale le likoleke bakeng sa ho laola litekanyetso tse fanoeng ka mohopolo. Kabo ea memori ho std joale e sebelisa mofuta Ntho, tse rometsoeng hape ho tsoa ho alloc. Tšebeliso e arohaneng ea alloc e utloahala lits'ebetsong tse sa tlamelletsoeng ho std ("#![no_std]"), hammoho le lilaebraring tse etselitsoeng ho sebelisoa mananeong a tšoanang ntle le std;
  • Ho feta licheke bakeng sa ho qala ka nepo ha boleng sisintsweng mofuta wa mahareng Mohlomong Unit, e ka sebelisoang sebakeng sa mem::mosebetsi o sa tsejoeng e le mokhoa o sireletsehileng. Mem :: ts'ebetso e sa lekanyetsoang e loketse bakeng sa ho theha lihlopha ka potlako, empa e khelosa moqapi hobane ho bonahala eka o qalile, empa ha e le hantle boleng bo lula bo sa tsejoe. Mohlomong Uninit e u lumella ho bontša ka ho hlaka ho moqapi hore boleng ha bo tsejoe, ho ela hloko boitšoaro bo ka khonehang bo sa hlalosoang bo amanang le sena, le ho hlophisa licheke mananeong ka "mohlomong_t:" le ho qala mohato ka mohato, ho tšoaea ho phethoa ha eona. ho sebelisa mohala oa “.assume_init()”. Ka ho fihla ha MaybeUninit, mem::mosebetsi o sa lekanyetsoang o tlositsoe mme ha oa khothaletsoa hore o sebelisoe;
  • Mokhoa oa NLL (Non-Lexical Lifetimes), o atolositseng sistimi ea ho rekota bophelo ba mefuta e alimiloeng, o tsitsitse bakeng sa puo ea Rust 2015 (qalong, NLL e ne e ts'ehelitsoe feela ke Rust 2018). Sebakeng sa ho etsa bophelo bohle boemong ba lexical, NLL e etsa joalo boemong ba sete ea lintlha ho kerafo ea phallo ea ts'ebetso. Mokhoa ona o u lumella ho eketsa boleng ba ho hlahloba ho alima ha mefuta-futa (ho alima chelete) le ho lumella ho etsoa ha mefuta e meng ea khoutu e nepahetseng, e sebelisoang pele e lebisitse phosong. Boitšoaro bo bocha bo boetse bo nolofalletsa ho lokisa liphoso;
  • Ts'ebetsong e ncha ea li-associative arrays e kenyelelitsoe HashMap, e thehiloeng ho sebelisoa ha sebopeho Tafole ea Switzerland (e laeloa ka bo eona hashbrown::HashMap, ntle le haeba ho boletsoe ka ho hlaka, joalo ka std::HashMap, e thehiloeng ho SipHash 1-3). Sebopeho sa software se lula se le joalo, 'me liphapang tse bonahalang ho moqapi li theoha ho ea ho ts'ebetso e eketsehileng le ho fokotsa tšebeliso ea mohopolo;
  • Ka har'a sephutheloana mookameli oa thepa eketsoe khetho ea "-offline", e nolofalletsang ts'ebetso ntle le ho kena marang-rang, moo ho sebelisoang feela liphutheloana tse bolokiloeng tsamaisong ea lehae ha u kenya litšepe. Haeba ts'epo e le sieo ka har'a cache ea lehae, ho tla ba le phoso. Ho kenya lipehelo esale pele polokelong ea lehae pele u ea kantle ho marang-rang, u ka sebelisa taelo ea "cargo fetch";
  • E kentse tšebetsong bokhoni ba ho bitsa macro "dbg!" ho bontša likhang tse 'maloa;
  • Sebopeho sa "const", se khethollang monyetla oa ho sebelisa moelelong ofe kapa ofe ho fapana le li-constants, se sebelisoa bakeng sa mekhoa.
    Sebopeho::ho tloha_sa_sa_align_e sa hlahlojwa,
    mem::ho hloka_ho theoha,
    Nonnull:: leketlileng le
    NonNnull ::cast;

  • Karolo e ncha ea API e fetiselitsoe sehlopheng se tsitsitseng, ho kenyelletsa le mekhoa e tsitsitseng
    mosebetsi::Waker, mosebetsi::Poll,
    VecDeque::rotate_left, VecDeque::rotate_right,
    Bala:: bala_vectored, Ngola::write_vectored,
    Iterator:: kopitsoa,
    BorrowMut (bakeng sa likhoele) le str::as_mut_ptr.

Source: opennet.ru

Eketsa ka tlhaloso