Rust 1.43 programavimo kalbos leidimas

paskelbta sistemos programavimo kalbos leidimas Rūdys 1.43, įkurta Mozilla projekto. Kalba skirta atminties saugai, suteikia automatinį atminties valdymą ir suteikia įrankius, leidžiančius pasiekti aukštą užduočių lygiagretumą nenaudojant šiukšlių rinktuvo ir Runtime.

„Rust“ automatinis atminties valdymas išlaisvina kūrėją nuo manipuliavimo žymekliu ir apsaugo nuo problemų, kylančių dėl žemo lygio atminties manipuliavimo, pvz., laisvos atminties prieigos, nulinių rodyklės nuorodų, buferio viršijimo ir panašiai. Kuriama paketų tvarkyklė, skirta platinti bibliotekas, užtikrinti surinkimą ir valdyti projekto priklausomybes. krovinys, leidžiančiu vienu paspaudimu gauti programai reikalingas bibliotekas. Saugykla palaikoma prieglobos bibliotekoms dėžės.io.

pagrindinis naujoves:

  • Makrokomandos suteikia galimybę naudoti elementų fragmentus, kad jie būtų paversti bruožų kodu, įgyvendinimu (impl) arba išoriniais blokais. Pavyzdžiui:

    makro_taisyklės! mac_trait {
    ($i:item) => {
    bruožas T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Suves į kartą:

    bruožas T {
    fn foo() {}
    }

  • Patobulintas primityvų, nuorodų ir dvejetainių operacijų tipo aptikimas.
    Pavyzdžiui, dabar bus galima sukompiliuoti šį kodą, kuris anksčiau sukėlė klaidą (Rust dabar teisingai nustato, kad 0.0 ir &0.0 turi būti f32 tipo):

    tegul n: f32 = 0.0 + &0.0;

  • Prie „Cargo“ buvo pridėtas naujas aplinkos kintamasis CARGO_BIN_EXE_{name}, kuris nustatomas atliekant integravimo testus ir leidžia nustatyti visą kelią į vykdomąjį failą, apibrėžtą paketo „[[bin]]“ skyriuje.
  • Jei teiginiuose leidžiama naudoti atributus, tokius kaip "#[cfg()]".
  • Biblioteka suteikia galimybę tiesiogiai naudoti susijusias konstantas sveikiesiems ir trupmeniniams skaičiams, neimportuojant modulio. Pavyzdžiui, galite iš karto parašyti u32::MAX arba f32::NAN, prieš tai nenurodydami „use std::u32“ ir „use std::f32“.
  • Pridėtas naujas modulis primityvus, kuri reeksportuoja Rust primityvius tipus, pavyzdžiui, kai reikia parašyti makrokomandą ir įsitikinti, kad tipai nėra paslėpti.
  • Nauja API dalis buvo perkelta į stabilią kategoriją, įskaitant stabilizuotą

    Vieną kartą::yra_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 ir
    iter::vieną kartą_su.

Šaltinis: opennet.ru

Добавить комментарий