Rust 1.40 Siidaynta Luuqada Barnaamijaynta

la daabacay siidaynta luuqada programming-ka Miridhku 1.40, oo uu aasaasay mashruuca Mozilla. Luqadda waxay diiradda saartaa badbaadada xusuusta, waxay bixisaa maaraynta xusuusta oo toos ah, waxayna siisaa qalab lagu gaaro isbarbar-dhigga hawsha sare iyada oo aan la isticmaalin ururiyaha qashinka iyo runtime.

Maareynta xusuusta tooska ah ee Rust's waxay ka xoraysaa horumariyaha wax-is-daba-marinta tilmaamayaasha waxayna ka ilaalisaa dhibaatooyinka ka dhasha khalkhalgelinta heerka hoose ee xusuusta, sida gelitaanka xusuusta bilaashka ah ka dib, tilmaame null ah, xad-dhaaf ah, iyo wixii la mid ah. Maamule xirmo ayaa la soo saarayaa si uu u qaybiyo maktabadaha, loo hubiyo isu-ururinta una maamulo ku-tiirsanaanta mashruuca. Cargo, taasoo kuu ogolaanaysa inaad hal mar gujiso ku hesho maktabadaha looga baahan yahay barnaamijka. Kaydka waxaa lagu taageeraa in lagu qabto maktabadaha sanduuqyada.io.

Main wax cusub:

  • Waxaa lagu daray awoodda lagu calaamadiyo qaab-dhismeedka (qaabka) iyo tirinta (tiro-koob leh Variant block) iyadoo la adeegsanayo sifada "#[aan_dhamaysnayn]", kaas Waxa ay u ogolaataa mustaqbalka, ku dar goobo cusub iyo doorashooyin qaab-dhismeedyo iyo tirooyin lagu dhawaaqay. Tusaale ahaan, soosaarayaasha qaybo leh qaab-dhismeedyo leh goobo si guud loo sheegay waxay isticmaali karaan "#[non_exhaustive]" si ay u calaamadiyaan qaab-dhismeedka laga yaabo in lagu daro goobo cusub mustaqbalka. Ilaa hadda, xaaladdan, horumariyaha ayaa lagu qasbay inuu kala doorto inta u dhaxaysa ku dhawaaqida beeraha si gaar ah iyo ku xidhidhista liiska beeraha ee aan bedeli karin. Sifada cusubi waxay meesha ka saaraysaa xaddidan waxayna kuu ogolaanaysaa inaad ku darto goobo cusub mustaqbalka adiga oo aan halis u ahayn inaad jebiso koodka dibadeed ee hore loo diyaariyey. Xirmooyinka sanduuqyada, marka la isku waafajiyo xulashooyinka ku jira qaybta "match", qeexid cad oo maaskaro ah "_ => {...}" ayaa loo baahan yahay, oo daboolaya meelaha suurtagalka ah ee mustaqbalka, haddii kale qalad ayaa soo muuqan doona marka lagu daro goobo cusub.
  • Lagu daray Awood u leh in loogu yeero nidaamka macro mac!() qaab nooc ah. Tusaale ahaan, hadda waxaad qori kartaa "nooca Foo = expand_to_type!
  • Gudaha "dibada {...}" blocks ayaa lagu daray Awoodda isticmaalka makrosyada habraaca iyo sifaynta, oo ay ku jiraan "bang!()" macros, tusaale ahaan:

    xeerar_macro! make_item { ($name:ident) => {fn $name(); }

    dibadda {
    samee_shay!(alpha);
    samee_shay!(beta);
    }

    dibadda "C" {
    # [my_identity_macro] fn foo();
    }

  • In macros la fuliyay karti uu ku dhaliyo "macro_rules!" Soo saarista "macro_rules!" suurto gal labadaba macros u eg ("mac!()") iyo macros qaab sifooyin ah ("#[mac]").
  • Ku jira $m: curiyaha khariidaynta meta ayaa lagu daray Taageerada qiyamka tirinta calaamada aan sabab lahayn ("[TOKEN_STREAM]", "{TOKEN_STREAM}" iyo "(TOKEN_STREAM)"), tusaale ahaan:

    xeerar_macro! accept_meta { ($m:meta) => {} }
    aqbal_meta! ( my :: jid );
    aqbali_meta! ( my :: jid = "lit" );
    aqbali_meta! ( my :: dariiqa (abc)
    aqbali_meta! ( my :: dariiqa [abc]);
    aqbali_meta! ( my :: dariiqa {abc});

  • Habka Rust 2015, soo saarida qaladka ayaa loo sahlay dhibaatooyinka la aqoonsaday marka la hubinayo amaahda doorsoomayaasha (amaah hubinta) iyadoo la adeegsanayo farsamada NLL (Non-Lexical Lifetimes). Markii hore, digniinaha waxaa lagu bedelay khaladaad markii ay ku socdaan qaabka Rust 2018.
    Ka dib markii isbeddelka lagu kordhiyay qaabka Rust 2015, horumariyayaashu waxay awoodeen inay ugu dambeyntii sameeyaan ka takhalus laga soo qaatay jeegihii hore ee amaahda.

    Aynu dib u xasuusanno in nidaamka xaqiijinta ee ku salaysan hab cusub oo lagu xisaabtamayo cimriga doorsoomayaasha la amaahday ay suurtagelisay in la ogaado dhibaatooyinka qaarkood oo aan la dareemin xeerkii hore ee xaqiijinta. Maadaama khaladka ka soo baxa jeegaga noocaan ah uu saameyn ku yeelan karo laqabsiga koodka hore ee shaqada, digniinaha ayaa markii hore la soo saaray bedelkii khaladaadka.

  • Sifada "const", taas oo go'aamisa suurtagalnimada in loo isticmaalo xaalad kasta halkii laga isticmaali lahaa joogtaynta, waxaa loo isticmaalaa is_power_of_two function (oo loogu talagalay tirooyin aan saxeexin).
  • Qayb cusub oo API ah ayaa loo raray qaybta xasilloon, oo ay ku jirto todo!
    Ikhtiyaarka :: as_deref, Option :: as_deref_mut, Option :: flat, UdpSocket :: peer_addr, {f32,f64} ::in_be_bytes, {f32,f64}::to_le_bytes,{f32,f64}::to_ne_bytes, {f32, f64}:: ka_be_bytes, {f32,f64}::ka_le_bytes, iyo {f32,f64}::ka_ne_bytes.

  • Ku jira xamuulka maareeyaha xirmada
    la fuliyay kaydinta digniinaha compiler ee saxanka. Waxaa lagu daray ikhtiyaarka "data-data xamuulka" amarka "data-rarka xamuulka".--shaandhaynta-madal"si loo muujiyo baakadaha ku xidhan barxadda la beegsanayo ee tiirka xallinta ku tiirsanaanta. Lagu daray http.ssl-nooca qaabaynta ikhtiyaarka si loo qeexo noocyada TLS ee sax ah.
    Lagu daray awoodda daabacaada qaybta"dev-ku-tiirsanaanta" iyada oo aan la cayimin "nooca" furaha.

  • Isku-duwaha rustc wuxuu bixiyaa taageerada heerka saddexaad ee bartilmaameedyada thumbv7neon-unknown-linux-musleabihf, aarch64-unknown-none-softfloat, mips64-unknown-linux-muslabi64 iyo mips64el-unknown-linux-muslabi64. Heerka saddexaad wuxuu ku lug leeyahay taageerada aasaasiga ah, laakiin aan lahayn tijaabin toos ah iyo daabacaadda dhismayaasha rasmiga ah.

Source: opennet.ru

Add a comment