Vydání programovacího jazyka Rust 1.69

Bylo zveřejněno vydání univerzálního programovacího jazyka Rust 1.69, založeného projektem Mozilla, ale nyní vyvíjeného pod záštitou nezávislé neziskové organizace Rust Foundation. Jazyk se soustředí na bezpečnost 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 (runtime je redukováno na základní inicializaci a údržbu standardní knihovny).

Metody zpracování 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ého zpracování paměti, 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, poskytování sestavení 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.

Bezpečnost paměti je v Rustu zajištěna v době kompilace prostřednictvím kontroly referencí, sledování vlastnictví objektů, sledování životnosti objektů (rozsahů) a hodnocení správnosti přístupu do paměti během provádění kódu. Rust také poskytuje ochranu proti přetečení celých čísel, vyžaduje povinnou inicializaci hodnot proměnných před použitím, lépe zpracovává chyby ve standardní knihovně, standardně aplikuje koncept neměnných referencí a proměnných, nabízí silné statické typování pro minimalizaci logických chyb.

Hlavní inovace:

  • Správce balíčků Cargo implementuje detekci varování, která lze automaticky vyřešit, a příslušná doporučení ke spuštění „cargo fix“ nebo „cargo clippy --fix“. varování: nepoužitý import: 'std::hash::Hash' --> src/main.rs:1:5 | 1 | použít std::hash::hash; | ^^^^^^^^^^^^^^^^ | = note: '#[warn(unused_imports)]' zapnuto jako výchozí varování: 'foo' (bin "foo") vygenerovalo 1 varování (spusťte 'cargo fix --bin "foo"' pro použití 1 návrhu)
  • Added Cargo pro zobrazení doporučení použít příkaz "cargo add" při pokusu o instalaci knihovny pomocí příkazu "cargo install".
  • Aby se zkrátila doba kompilace, byly informace o ladění ve skriptech sestavení ve výchozím nastavení zakázány. Pokud se sestavení skriptů spustí úspěšně, změna neprovede žádný viditelný rozdíl, ale pokud selže, výpis zpětného trasování bude obsahovat méně informací. Chcete-li vrátit staré chování do Cargo.toml, přidejte: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Nová část API byla přesunuta do kategorie stabilní, včetně metod a implementací vlastností byly stabilizovány:
    • CStr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • Atribut "const", který určuje možnost jeho použití v libovolném kontextu místo konstant, se používá ve funkcích:
    • SocketAddr::new
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::new
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::new
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Přidána možnost používat v argumentech kompilátoru příznaky true a false.

Zdroj: opennet.ru

Přidat komentář