Rust 1.43 Rilaxx tal-Lingwa ta' Programmazzjoni

ippubblikat rilaxx tal-lingwa tal-ipprogrammar tas-sistema Sadid 1.43, imwaqqfa mill-proġett Mozilla. Il-lingwa tiffoka fuq is-sikurezza tal-memorja, tipprovdi ġestjoni awtomatika tal-memorja, u tipprovdi għodod biex jinkiseb paralleliżmu għoli tal-kompiti mingħajr ma tuża kollettur taż-żibel u runtime.

Il-ġestjoni awtomatika tal-memorja tas-sadid teħles lill-iżviluppatur mill-manipulazzjoni tal-pointer u tipproteġi kontra problemi li jirriżultaw minn manipulazzjoni tal-memorja ta 'livell baxx, bħal aċċessi għall-memorja wara ħielsa, dereferences null tal-pointer, buffer overruns, u affarijiet simili. Qed jiġi żviluppat maniġer tal-pakketti biex iqassam il-libreriji, jiżgura l-assemblaġġ u jamministra d-dipendenzi mill-proġett. merkanzija, li jippermettilek tikseb il-libreriji meħtieġa għall-programm fi klikk waħda. Repożitorju huwa appoġġjat biex jospita libreriji crates.io.

Il-prinċipali innovazzjonijiet:

  • Macros jipprovdu l-abbiltà li jintużaw frammenti ta 'elementi biex jibdluhom f'kodiċi għal karatteristiċi (karatteristika), implimentazzjonijiet (impl) jew blokki esterni. Pereżempju:

    makro_regoli! mac_trait {
    ($i:oġġett) => {
    karatteristika T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Se jwassal għall-ġenerazzjoni:

    karatteristika T {
    fn foo() {}
    }

  • Sejbien tat-tip imtejjeb ta 'primittivi, referenzi u operazzjonijiet binarji.
    Pereżempju, il-kodiċi li ġej, li qabel kien ikkawża żball, issa se jkun jista' jikkompila (Rust issa jiddetermina b'mod korrett li 0.0 u &0.0 għandhom ikunu tat-tip f32):

    ejja n: f32 = 0.0 + &0.0;

  • Ġiet miżjuda varjabbli ambjentali ġdid CARGO_BIN_EXE_{isem} ma' Cargo, li hija ssettjata meta tibni testijiet ta' integrazzjoni u tippermettilek tiddetermina t-triq sħiħa għall-fajl eżekutibbli definit fit-taqsima “[[bin]]” tal-pakkett.
  • Jekk id-dikjarazzjonijiet jitħallew jużaw attributi bħal "#[cfg()]".
  • Il-librerija tipprovdi l-abbiltà li tuża kostanti assoċjati direttament għal tipi interi u frazzjonali, mingħajr ma timporta modulu. Pereżempju, tista 'tikteb immedjatament u32::MAX jew f32::NAN mingħajr ma l-ewwel tispeċifika "use std::u32" u "use std::f32".
  • Modulu ġdid miżjud primittiv, li tesporta mill-ġdid tipi primitivi Rust, pereżempju meta jkollok bżonn tikteb makro u kun żgur li t-tipi ma jkunux moħbija.
  • Porzjon ġdid ta 'APIs ġie trasferit għall-kategorija stabbli, inkluż stabbilizzat

    Ladarba::is_kompletat,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 u
    iter::darba_ma.

Sors: opennet.ru

Żid kumment