Vydání programovacího jazyka Rust 1.54

Bylo zveřejněno vydání systémového programovacího jazyka Rust 1.54, založeného projektem Mozilla, ale nyní vyvíjeného pod záštitou nezávislé neziskové organizace Rust Foundation. Jazyk se zaměřuje na bezpečnost paměti, poskytuje automatickou správu paměti a poskytuje prostředky k dosažení vysokého paralelismu úloh bez použití garbage collectoru nebo runtime (runtime je redukováno na základní inicializaci a údržbu standardní knihovny).

Automatická správa paměti Rust eliminuje chyby při manipulaci s ukazateli a chrání před problémy vyplývajícími z manipulace s pamětí na nízké úrovni, jako je přístup k oblasti paměti po jejím uvolnění, dereference nulového ukazatele, přetečení vyrovnávací paměti atd. Pro distribuci knihoven, zajištění sestavování a správu závislostí projekt vyvíjí správce balíčků Cargo. Úložiště crates.io je podporováno pro hostování knihoven.

Hlavní inovace:

  • Přidána možnost používat v atributech makra podobná funkcím (procedurální makra a makra vytvořená pomocí makra „macro_rules!“). Taková makra jsou odlišena od funkcí symbolem „!“ za názvem (makro!(...)) a nahrazením zdrojového textu makra místo generování volání funkce. Volání maker v rámci atributů může být užitečné pro zahrnutí obsahu z jiných souborů do dokumentování komentářů. Chcete-li například vložit obsah souboru README a výsledek spuštění skriptu, můžete zadat: #![doc = include_str!("README.md")] #[cesta = concat!(env!("OUT_DIR) "), "/generated.rs" )] mod vygenerován;
  • Vestavěné funkce kompilátoru (Intrinsics) pro platformu wasm32 byly stabilizovány, což umožňuje použití instrukcí SIMD ve WebAssembly. Většina funkcí, jako je v128_bitselect, je dostupná v "bezpečném" režimu, ale některé funkce, které pracují s ukazateli (například v128_load), zůstávají "nebezpečné".
  • Vrátilo se výchozí použití přírůstkové kompilace, která vám umožňuje znovu sestavit pouze změněné části kódu, což může výrazně zkrátit dobu potřebnou k sestavení projektu při rekompilaci po provedení drobných změn. Přírůstková kompilace byla ve verzi 1.52.1 zakázána kvůli skrytým chybám, které se objevily po přidání další kontroly načítání dat z diskové mezipaměti.
  • Nová část API byla převedena do stabilní kategorie, včetně následujících stabilizovaných:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • oblouk::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque::bod_oddílu
  • Do stromu cargo-tree byly přidány možnosti: „—prune “ pro odstranění balíčku z grafu závislostí, „—depth“ pro zobrazení pouze prvků dané úrovně vnoření ve stromu závislostí, „—edges no-proc- makro“ pro skrytí závislostí procedurálních maker .

Zdroj: opennet.ru

Přidat komentář