Puo ea Rust programming 1.37 tokollo

e hatisitsoeng tokollo ea puo ea lenaneo la sistimi Mafome 1.37, 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:

  • Ho rustc compiler faneng ka ts'ehetso bakeng sa ntlafatso e ipapisitseng le liphetho tsa profiling ea khoutu (PGO, Ts'ebetso e Tataisoang ke Boemo),
    ho o lumella ho hlahisa khoutu e nepahetseng haholoanyane ho latela tlhahlobo ea lipalo-palo tse bokelletsoeng nakong ea ts'ebetso ea lenaneo. Ho hlahisa profil, ho fanoe ka folakha ea "-C profil-generate", le ho sebelisa profil nakong ea kopano - "-C profile-use" (qalong, lenaneo le bokelloa ka folakha ea pele, le potoloha, 'me ka mor'a ho theha. profil, e kopantsoe hape le folakha ea bobeli);

  • Ha o phethahatsa taelo ea "cargo run", e leng bonolo ho e sebelisa bakeng sa ho hlahloba ka potlako lits'ebetso tsa console, bokhoni ba ho ikhethela faele e sebetsang ho sebetsa bo kenyelelitsoe haeba ho na le lifaele tse 'maloa tse ka etsoang ka har'a sephutheloana. Faele ea kamehla e lokelang ho etsoa e khethoa ka taelo ea kamehla-run karolong ea [package] e nang le parameters ea sephutheloana, e leng se u lumellang ho qoba ho hlalosa ka ho hlaka lebitso la faele ka "-bin" folakha nako le nako ha u tsamaisa "cargo run";
  • Taelo ea "cargo vendor", e fanoeng pele e le sephutheloana se arohaneng. Taelo e u lumella ho hlophisa mosebetsi ka kopi ea lehae ea batho ba itšetlehileng ka eona - ka mor'a ho phethahatsa "morekisi oa thepa", likhoutu tsohle tsa mohloli oa litšepiso tsa morero li kopitsoa ho tloha ho crates.io ho ea bukeng ea lehae, e ka sebelisoang mosebetsing ntle le ho fumana likreiti. io (kamora ho phethahatsa taelo, tlhahiso ea ho fetola tlhophiso e bonts'oa ho sebelisa bukana ea meaho). Tšobotsi ena e se e sebelisoa ho hlophisa ho tsamaisoa ha rustc compiler ka ho kenya lintho tsohle tse itšetlehileng ka eona polokelong e le 'ngoe ka tokollo;
  • Hona joale hoa khoneha ho theha likhokahano tsa likhetho tsa enum u sebelisa li-aliases tsa mofuta (mohlala, 'meleng oa mosebetsi "fn increment_or_zero(x: ByteOption) o ka hlakisa "ByteOption::None => 0"), mofuta oa lipalo oa lipalo (‹ MyType‹.. ››::option => N) kapa Boikemisetso ba ho kena (ka li-blocks c &self o ka hlakisa “Self::Quarter => 25”);
  • E ekelitse bokhoni ba ho theha li-constants tse sa boleloang ka mabitso ho li-macros. Sebakeng sa ho hlalosa lebitso la element ho "const", joale o ka sebelisa sebopeho sa "_" ho khetha sesupo se sa pheteng, ho qoba likhohlano tsa mabitso ha u bitsa macro hape;
  • E ekelitse bokhoni ba ho sebelisa "#[repr(align(N))"" ka li-ennums ho sebelisa syntax e ts'oanang le ho hlalosa sebopeho sa AlignN‹T› ka tatellano ebe ho sebelisoa AlignN‹MyEnum›;
  • Karolo e ncha ea API e isitsoe sehlopheng se tsitsitseng, ho kenyelletsa le BufReader::buffer, BufWriter::buffer, le
    Sele::ho tloha_mut,
    Sele:: joalo ka_karolwana_ya_lisele,
    DoubleEndedIterator::nth_back,
    Khetho::xor
    {i,u}{8,16,64,128,size}::reverse_bits, Wrapping::reverse_bits le
    selae::kopi_kahare.

Ho phaella moo, e ka hlokomeloa qalo ea teko morero Async-std, e fanang ka mefuta e sa tšoaneng ea laebrari e tloaelehileng ea Rust (e leng kou ea laebrari ea std, moo li-interfaces tsohle li fanoang ka mofuta oa async 'me li loketse ho sebelisoa ka syntax ea async/e emetse).

Source: opennet.ru

Eketsa ka tlhaloso