Rust 1.47 Siidaynta Luuqada Barnaamijaynta

la daabacay sii daayo 1.47 ee luqadda barnaamijka miridhku, oo uu aasaasay mashruuca Mozilla. Luqadda waxay diiradda saartaa badbaadada xusuusta, waxay bixisaa maaraynta xusuusta tooska ah, waxayna bixisaa hab lagu gaaro isbarbardhigga hawl sare iyada oo aan la isticmaalin qashin ururiye ΠΈ runtime (Waqtiga runtu wuxuu hoos ugu dhacayaa bilowga aasaasiga ah iyo dayactirka maktabadda caadiga ah).

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. Kaydka waxaa lagu taageeraa in lagu qabto maktabadaha sanduuqyada.io.

Main wax cusub:

  • Taageerada la fuliyay ee noocyada habab cabbir kasta. Markii hore, iyada oo ay ugu wacan tahay awood la'aanta in la qeexo shaqooyinka guud ee dhammaan qiyamka isku-dhafka ah, maktabadda caadiga ah waxay bixisay taageero sifo ku dhisan oo keliya oo loogu talagalay isku-xidhka ilaa 32 walxood oo cabbir ahaan ah (sifada cabbir kasta ayaa si cad loo qeexay). Waad ku mahadsan tahay abuurista shaqeynta generics joogtada ah ("const generics"), waxaa suurtagal ah in la qeexo shaqooyinka guud ee cabbir kasta oo kala duwan, laakiin weli kuma jiraan sifooyinka luqadda deggan, inkasta oo lagu fuliyo isku-duwaha oo ay yihiin hadda ku lug leh Maktabadda caadiga ah ee loogu talagalay sifooyin kala duwan oo cabbir kasta ah.

    Tusaale ahaan, dhismaha soo socda ee Rust 1.47 ayaa daabici doona waxa ku jira array, inkastoo markii hore ay keeni lahayd qalad:

    fn main() {
    ha xs = [0; 34];

    println! ("{:?}", xs);
    }

  • Wax-soo-saarka raad-gaaban (backtrace), wax-soo-saarka xaaladaha degdegga ah. Walxaha aan daneyneynin inta badan xaaladaha, laakiin qulqulaya wax soo saarka oo ka jeediya dareenka sababaha asaasiga ah ee dhibaatada, ayaa laga saaray raadadka. Si aad u soo celiso raad buuxa, waxaad isticmaali kartaa doorsoomaha deegaanka "RUST_BACKTRACE=buuxa". Tusaale ahaan, koodhka

    fn main() {
    cabsi!();
    }

    Markii hore, raadku wuxuu soo saaray 23 marxaladood, laakiin hadda waa la dhimi doonaa
    3 tillaabo oo kuu ogolaanaya inaad isla markiiba fahanto nuxurka:

    dunta 'ugu weyn' waxay ka argagaxday 'argagax cad', src/main.rs:2:5
    dib-u-dhac:
    0: std:: argagax:: argagax
    laga helo /rustc/d…d75a/library/std/src/panicking.rs:497
    1: garoon ciyaaraha ::guud
    at ./src/main.rs:2
    2: core :: ops :: function :: FnOnce :: wac_hal mar
    at /rustc/d…d75a/library/core/src/ops/function.rs:227

  • Isku-duwaha rustc waa la cusboonaysiiyay si loo dhiso iyadoo la isticmaalayo LLVM 11 (Miridhku adeegsadaa LLVM sida dhabarka jiil kood). Isla mar ahaantaana, awoodda lagu dhisayo LLVM-yadii hore, ilaa nooca 8, waa la hayaa, laakiin si caadi ah (in miridhku-lang/llvm-mashruuc) ayaa hadda isticmaalaya LLVM 11. LLVM 11 ayaa la filayaa in la sii daayo maalmaha soo socda.
  • Dusha Windows-ka, isku-dariyaha rustc wuxuu bixiyaa taageero awood u siinaya hubinta daacadnimada socodka kontoroolka (Control Flow Guard), oo la hawlgeliyay iyadoo la adeegsanayo calanka "-C control-flow-guard". Goobaha kale calankan waa la iska indhatiray hadda.
  • Qayb cusub oo API-yada ah ayaa loo wareejiyay qaybta deggan, oo ay ku jirto la xasiliyay
    Aqoonsiga:: cusub_ceeriin,
    Range::waa_madhan,
    RangeInclusive:: waa madhan,
    Natiijo ::as_deref,
    Natiijo:: as_deref_mut,
    Vec:: daad,
    tilmaame :: ka soo kabashada,
    f32::TAU iyo
    f64::TAU.

  • Sifada "const", taas oo go'aamisa suurtagalnimada in loo isticmaalo xaalad kasta oo aan joogto ahayn, ayaa loo adeegsadaa hababka:
    • ku cusub dhammaan tirooyin aan eber ahayn;
    • checked_add, checked_sub, checked_mul, checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub iyo saturating_mul dhamaan teerada;
    • waa_ascii_alphabetic, waa_ascii_kiis sare, waa_ascii_hoose, waa_ascii_alphanumeric, waa_ascii_digit, waa_ascii_hexdigit, waa_ascii_punctuation, waa_ascii_graphic, waa_ascii_space_cad iyo waa_ascii_control ee char iyo u8 nooc.
  • Loogu talagalay FreeBSD ku lug leh Toolkit ka FreeBSD 11.4 (FreeBSD 10 ma taageerto LLVM 11).

Source: opennet.ru

Add a comment