Vydání programovacího jazyka Rust 1.43

zveřejněno vydání systémového programovacího jazyka Rez 1.43založil projekt Mozilla. Jazyk se zaměřuje na bezpečnou správu paměti, poskytuje automatickou správu paměti a poskytuje prostředky k dosažení vysokého paralelismu úloh a zároveň se vyhýbá použití garbage collectoru a runtime.

Automatická správa paměti Rust osvobozuje vývojáře od manipulace s ukazateli a chrání před problémy vyplývajícími z manipulace s pamětí na nízké úrovni, jako jsou například přístupy k paměti po volném čase, dereference nulového ukazatele, přetečení vyrovnávací paměti a podobně. Vyvíjí se správce balíčků pro distribuci knihoven, zajištění sestavení a správu závislostí v rámci projektu. Náklad, což vám umožní získat knihovny, které potřebujete pro program, jedním kliknutím. Hostitelské knihovny podporují úložiště crates.io.

hlavní inovace:

  • Makra poskytují možnost používat fragmenty prvků k jejich přeměně na kód pro vlastnosti (trait), implementace (impl) nebo externí bloky. Například:

    makro_pravidla! mac_trait {
    ($i:item) => {
    vlastnost T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Povede ke generaci:

    vlastnost T {
    fn foo() {}
    }

  • Vylepšená detekce typu primitiv, odkazů a binárních operací.
    Například následující kód, který dříve způsoboval chybu, bude nyní možné zkompilovat (Rust nyní správně určuje, že 0.0 a &0.0 musí být typu f32):

    nechť n: f32 = 0.0 + & 0.0;

  • Do Cargo byla přidána nová proměnná prostředí CARGO_BIN_EXE_{name}, která se nastavuje při vytváření integračních testů a umožňuje vám určit úplnou cestu ke spustitelnému souboru definovanému v části balíčku „[[bin]]“.
  • Pokud příkazy mohou používat atributy jako "#[cfg()]".
  • Knihovna poskytuje možnost používat přidružené konstanty přímo pro celočíselné a zlomkové typy bez importu modulu. Můžete například okamžitě napsat u32::MAX nebo f32::NAN, aniž byste nejprve zadali „use std::u32“ a „use std::f32“.
  • Přidán nový modul primitivní, který reexportuje primitivní typy Rust, například když potřebujete napsat makro a ujistit se, že typy nejsou skryté.
  • Nová část API byla převedena do kategorie stabilních, včetně stabilizovaných

    Once::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 a
    iter::jednou_s.

Zdroj: opennet.ru

Přidat komentář