Rust 1.43 Programming Language Release

gipatik pagpagawas sa pinulongan sa sistema sa programming Taya 1.43, gitukod sa proyekto sa Mozilla. Ang lengguwahe nagtutok sa kaluwasan sa panumduman, naghatag og awtomatik nga pagdumala sa panumduman, ug naghatag og mga himan alang sa pagkab-ot sa taas nga paralelismo sa buluhaton nga walay paggamit ug tigkolekta sa basura ug runtime.

Ang awtomatik nga pagdumala sa memorya ni Rust nagpalingkawas sa developer gikan sa pagmaniobra sa pointer ug nanalipod batok sa mga problema nga naggikan sa ubos nga lebel sa pagmaniobra sa memorya, sama sa human-free nga memory access, null pointer dereferences, buffer overruns, ug uban pa. Usa ka manedyer sa pakete ang gipalambo aron sa pag-apod-apod sa mga librarya, pagsiguro sa asembliya ug pagdumala sa mga dependency sa proyekto. Cargo, nga nagtugot kanimo nga makuha ang mga librarya nga gikinahanglan alang sa programa sa usa ka pag-klik. Gisuportahan ang usa ka repository sa pag-host sa mga librarya crates.io.

nag-unang mga inobasyon:

  • Ang mga macro naghatag ug katakus sa paggamit sa mga tipik sa mga elemento aron mahimo kini nga code alang sa mga kinaiya (trait), pagpatuman (impl) o external blocks. Pananglitan:

    macro_rules! mac_trait {
    ($i: butang) => {
    kinaiya T {$i}
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Motultol ngadto sa henerasyon:

    kinaiya T {
    fn foo() {}
    }

  • Gipauswag nga matang sa pagkakita sa mga primitibo, mga pakisayran ug binary nga mga operasyon.
    Pananglitan, ang mosunud nga code, nga kaniadto hinungdan sa usa ka sayup, mahimo na karon nga ma-compile (Ang Rust karon husto nga nagtino nga ang 0.0 ug &0.0 kinahanglan nga tipo nga f32):

    himoa nga n: f32 = 0.0 + &0.0;

  • Usa ka bag-ong variable sa palibot nga CARGO_BIN_EXE_{name} ang gidugang sa Cargo, nga gitakda kung nagtukod mga pagsulay sa panagsama ug gitugotan ka nga mahibal-an ang tibuuk nga agianan sa ma-executable nga file nga gihubit sa seksyon nga "[[bin]]" sa package.
  • Kung ang mga pahayag gitugotan sa paggamit sa mga hiyas sama sa "#[cfg()]".
  • Ang librarya naghatag ug abilidad sa paggamit sa mga kaubang constants direkta alang sa integer ug fractional nga mga tipo, nga walay pag-import ug module. Pananglitan, mahimo nimong isulat dayon ang u32::MAX o f32::NAN nga dili una isulti ang "gamit ang std:: u32" ug "gamit ang std:: f32".
  • Bag-ong module gidugang kinaandan, nga nag-eksport pag-usab sa Rust primitive nga mga tipo, pananglitan kung kinahanglan nimo nga magsulat og macro ug siguroha nga ang mga tipo dili gitago.
  • Usa ka bag-ong bahin sa mga API ang gibalhin sa stable nga kategorya, lakip ang gi-stabilize

    Sa higayon nga::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 ug
    iter::kausa_uban.

Source: opennet.ru

Idugang sa usa ka comment