Vydání programovacího jazyka Rust 1.35

odehrál se vydání systémového programovacího jazyka Rez 1.35, vyvinutý projektem Mozilla. 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.

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:

  • Vlastnosti FnOnce, FnMut и Fn implementováno pro alokaci haldy krabicové typy Box‹dyn FnOnce›, Box‹dyn FnMut› a Box‹dyn Fn›;
  • Přidal příležitost odlévání uzávěrů na ukazatele nebezpečných funkcí (unsafe fn);
  • Implementována schopnost volat makro „dbg!“ bez argumentů pro zobrazení názvu souboru a čísla řádku v stderr bez kontroly proměnné, což je vhodné pro ladění operace podmíněných výrazů;
  • Přidána metoda " k typům s pohyblivou řádovou čárkou f32 a f64copysign» kopírování znaku z jednoho čísla do druhého;
  • Přidána metoda "obsahuje“, který umožňuje zkontrolovat, zda je zadaná hodnota v rozsahu;
  • Přidána metoda Ref:Cell:map_split, což vám umožní reflektovat a oddělit vypůjčenou hodnotu RefCell pro různé složky vypůjčených dat;
  • Přidána metoda RefCell::replace_with nahradit aktuální hodnotu RefCell a vrátit starou hodnotu jako výsledek;
  • Přidána metoda ptr::hash hashovat ukazatel nebo odkaz adresou spíše než adresovanou hodnotou;
  • Přidána metoda Možnost::zkopírováno zkopírovat obsah možností Option‹&T› nebo Option‹&mut T›;
  • Do kategorie stable byla převedena nová část API, včetně metod, které byly stabilizovány
    f32::copysign,
    f64::copysign,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::hash,
    Rozsah::obsahuje,
    RangeFrom::obsahuje,
    RangeTo::obsahuje,
    RangeInclusive::obsahuje,
    RangeToInclusive::obsahuje a
    Možnost::zkopírováno;

  • Přidána kontrola drop_bounds do clippy (linter), která se spouští při přidání vazby „T: Drop“ do funkce;
  • Kompilátor přidal podporu pro novou cílovou platformu
    wasm32-unknown-wasi (rozhraní BYL JSEM používat WebAssembly mimo prohlížeč);

  • Sada nástrojů Rust je přizpůsobena pro distribuce založené na standardní C knihovně Musl.

Zdroj: opennet.ru

Přidat komentář