Rust 1.45 Siidaynta Luuqada Barnaamijaynta

la daabacay sii daayo 1.45 ee luqadda barnaamijka miridhku, 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 baabi'isaa khaladaadka marka la maamulayo tilmaamayaasha waxayna ka ilaalisaa dhibaatooyinka ka dhasha khalkhalgelinta heerka hoose ee xusuusta, sida gelitaanka gobolka xusuusta ka dib marka la sii daayo, tilmaame null ah, dulsaar xad dhaaf ah, iwm. 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:

  • Meesha laga saaray muddada dheer cillad marka la samaynayo beddelka u dhexeeya isugeynta iyo nambarada dhibcaha sabbaynaya. Maaddaama isku-dariyaha Rust uu u isticmaalo LLVM dhabarka dambe, nooca hawlgallada beddelka waxaa lagu sameeyay tilmaamaha koodhka dhexe ee LLVM sida fptoui, kuwaas oo leh hal sifo oo muhiim ah - dabeecad aan la qeexin haddii qiimaha ka dhashay uusan ku habboonayn nooca bartilmaameedka. Tusaale ahaan, marka loo beddelayo qiimaha sabbaynta ee 300 oo leh nooca f32 loona beddelayo nooca u8, natiijadu waa mid aan la saadaalin karin waxaana laga yaabaa inay ku kala duwanaato nidaamyo kala duwan. Dhibaatadu waxay tahay in sifadan ay ka soo muuqato koodka aan lagu calaamadin inuu yahay "ammaan".

    Sida daxalku 1.45, habdhaqanka nooca cabbirka qulqulka si adag ayaa loo nidaamiyay, iyo "sida" hawlgalka beddelidda waxay hubinayaan qulqulka waxayna ku qasbaan qiimaha in loo beddelo qiimaha ugu sarreeya ama ugu yar ee nooca bartilmaameedka (tusaale sare, qiimaha 300 ayaa loo rogi lahaa 255). Si loo joojiyo jeegaga noocaas ah, wicis dheeri ah oo API ah "{f64, f32}:: to_int_unchecked" ayaa la bixiyaa, iyaga oo ku shaqeeya qaab aan badbaado lahayn.

    fn cast (x: f32) -> u8 {
    x sida u8
    }

    fn main() {
    ha aad_weyn = 300.0;
    ha yaraado = -100.0;
    iska daa = f32::NAN;

    ha x: f32 = 1.0;
    ha y: u8 = ammaan ahayn {x.to_int_unchecked()};

    println! ("too_big_casted = {}", tuurid (too_big) // soo saarida 255
    println! ("too_small_casted = {}", tuur (aad_yar) // wax soo saarka 0
    println! ("not_a_number_casted = {}", tuur (nan)); // wax soo saarka 0
    }

  • Isticmaal xasiloon macros habraacatibaaxo shaqo u eg, habyaallo, iyo odhaahyo. Markii hore, macro-yada noocan oo kale ah looma yeeri karo meel kasta, laakiin kaliya qaybo ka mid ah koodhka (sida wicitaan gaar ah, oo aan ku dhex jirin koodka kale). Kordhinta habka loogu yeeri karo makros, oo la mid ah shaqooyinka, waxay ahayd mid ka mid ah shuruudaha si loo sameeyo qaab-dhismeedka shabakadda gantaal in la sii daayo xasilloon ee miridhku. Markii hore, gaaritaanka dabacsanaan dheeraad ah oo lagu qeexayo gacan-ku-hayeyaasha Rocket waxay u baahan tahay awood-siinta sifo tijaabo ah oo loo yaqaan "proc_macro_hygiene", kaas oo aan laga heli karin noocyada xasilloon ee Rust. Hawshani hadda waxay ku dhisan tahay siidaynta luqadda deggan.
  • Loo oggol yahay in la isticmaalo noocyada kala duwan ee leh nooca "char" si loo qiyaaso qiimaha kala duwan (ops:: {Range, RangeFrom, RangeFull, RangeInclusive, RangeTo}):

    ee ch in 'a'..='z' {
    daabac!("{}", ch);
    }
    println!(); // Daabici doona "abcdefghijklmnopqrstuvwxyz"

  • Qayb cusub oo API-yada ah ayaa loo wareejiyay qaybta deggan, oo ay ku jirto la xasiliyay
    Arc :: as_ptr,
    BTreeMap::kasaar gelida,
    Rc :: as_ptr,
    rc:: daciif ah:: as_ptr,
    rc::Taciif::
    rc :: daciif ah :: cayriin,
    str :: horgalaha_strip,
    str :: xarriijimo,
    sync :: daciif :: as_ptr,
    isku dhejin :: daciif ah :: ka_ceeriin,
    isku dhejin :: daciif ah :: cayriin,
    char:: UNICODE_VERSION,
    Baaxadda::lagu xaliyay,
    Baaxadda :: waxay ku taal,
    Taako :: goob_isku-dhafan,
    unix:: habka::CommandExt::arg0.

  • Isku-duwaha rustc wuxuu ku daray taageerada ka-hortagga qaababka kala duwan ee bartilmaameedka iyadoo la adeegsanayo calanka "target-feature", tusaale ahaan, "-C target-feature=+avx2,+fma". Calamo cusub ayaa sidoo kale lagu daray:
    miisaska xoog-dejinta" si ay u abuuraan miisaska wicitaanka ee dabaysha, iyada oo aan loo eegin xeeladda maaraynta shilalka; "embed-bitcode" si loo xakameeyo in LLVM bitcode uu ku jiro rlibs la soo saaray. Calankii "embed-bitcode" waxaa si toos ah loogu furay Cargo si ay u wanaajiso isticmaalka wakhtiga dhismaha iyo booska diskka.

  • Heerka saddexaad ee taageerada ayaa la siiyay mipsel-sony-psp iyo thumbv7a-uwp-windows-msvc. Heerka saddexaad wuxuu ku lug leeyahay taageerada aasaasiga ah, laakiin aan lahayn tijaabin toos ah iyo daabacaadda dhismayaasha rasmiga ah.

Intaa waxaa dheer, waxaa lagu ogaan karaa sheeko ku saabsan abuurista ugu fudud apps Luqadda Rust-ka, laga bilaabo adeegsiga bootloader-ka oo u diyaarsan wax-soo-saarka is-ka kooban beddelka nidaamka hawlgalka.
Maqaalku waa kii ugu horreeyay ee taxane ah oo loogu talagalay muujinta farsamooyinka loo baahan yahay barnaamijyada heerka hooseeya iyo horumarinta OS.

Source: opennet.ru

Add a comment