Vydání programovacího jazyka Rust 1.46

zveřejněno vydání 1.46 systémového programovacího jazyka Rezzalož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 šetří vývojáře před chybami při manipulaci s ukazateli a chrání před problémy, které vznikají v důsledku nízkoúrovňové manipulace s pamětí, jako je přístup k oblasti paměti po jejím uvolnění, dereferencování nulových ukazatelů, přetečení vyrovnávací paměti atd. Pro distribuci knihoven, zajištění sestavení a správu závislostí projekt vyvíjí správce balíčků 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:

  • Byly rozšířeny možnosti funkcí definovaných pomocí výrazu „const fn“, které lze volat nejen jako regulární funkce, ale také je místo konstant používat v libovolném kontextu. Tyto funkce se počítají v době kompilace, nikoli za běhu, takže podléhají určitým omezením, jako je schopnost číst pouze z konstant.

    Nová verze odstraňuje zákaz používání booleovských operátorů („&&“ a „||“) v takových funkcích a umožňuje použití konstrukcí „if“, „if let“, „match“,
    „zatímco“, „zatímco let“ a „smyčka“ a také poskytuje možnost převodu na řezy (výřez, dynamická pole) pomocí výrazu „&[T]“. Použití těchto funkcí ve funkcích „const fn“ umožňuje přesunout některé operace náročné na zdroje do fáze kompilace. Například implementace „const-sha1“ umožňuje vypočítat hashe SHA-1 v době kompilace, což vede k téměř 40násobnému zrychlení vazeb WinRT pro Rust.

  • Aby byly chybové zprávy informativnější, byla stabilizována podpora atributu „#[track_caller]“, což je užitečné pro funkce jako rozbalení, které může způsobit paniku, pokud jsou typy použity nesprávně. Zadaný atribut použije obsluha paniky k vytištění polohy volajícího v chybové zprávě.
  • Atribut „const“, který určuje možnost jeho použití v libovolném kontextu místo konstant, se používá v metodě std::mem::forget.
  • Nová část API byla přesunuta do stabilní kategorie, včetně stabilizovaných Option::zip a vec::Drain::as_slice.
  • Ve správci balíčků Cargo přidal podpora nových proměnných prostředí nastavených při kompilaci balíčku: CARGO_BIN_NAME (název výsledného spustitelného souboru), CARGO_CRATE_NAME (název balíčku), CARGO_PKG_LICENSE (licence uvedená v manifestu), CARGO_PKG_LICENSE_FILE (cesta k licenčnímu souboru).

Zdroj: opennet.ru

Přidat komentář