Programski jezik Rust 1.69 izdanje

Objavljeno je izdanje Rust 1.69 programskog jezika opšte namjene, koji je osnovan od strane Mozilla projekta, a koji je sada razvijen pod okriljem nezavisne neprofitne organizacije Rust Foundation. Jezik se fokusira na sigurnost memorije i pruža sredstva za postizanje visokog paralelizma poslova uz izbjegavanje upotrebe sakupljača smeća i vremena izvođenja (vrijeme izvođenja je svedeno na osnovnu inicijalizaciju i održavanje standardne biblioteke).

Rustove metode rukovanja memorijom spašavaju programera od grešaka prilikom manipulacije pokazivačima i štite od problema koji nastaju zbog rukovanja memorijom na niskom nivou, kao što je pristup memorijskoj oblasti nakon što je ona oslobođena, dereferenciranje nultih pokazivača, prekoračenje bafera itd. Za distribuciju biblioteka, izradu i upravljanje ovisnostima, projekt razvija Cargo paket menadžer. Crates.io spremište je podržano za hostovanje biblioteka.

Sigurnost memorije je osigurana u Rustu u vrijeme kompajliranja kroz provjeru referenci, praćenje vlasništva nad objektom, praćenje životnog vijeka objekata (opsega) i procjenu ispravnosti pristupa memoriji tokom izvršavanja koda. Rust također pruža zaštitu od prekoračenja cijelih brojeva, zahtijeva obaveznu inicijalizaciju vrijednosti varijabli prije upotrebe, bolje obrađuje greške u standardnoj biblioteci, primjenjuje koncept nepromjenjivih referenci i varijabli po defaultu, nudi snažno statičko kucanje kako bi se minimizirale logičke greške.

Glavne inovacije:

  • Cargo paket menadžer implementira otkrivanje upozorenja koja se mogu automatski riješiti, i izlaz odgovarajućih preporuka za pokretanje “cargo fix” ili “cargo clippy -fix”. upozorenje: neiskorišćen import: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | koristite std::hash::Hash; | ^^^^^^^^^^^^^^^^ | = napomena: '#[warn(unused_imports)]' uključeno prema zadanim postavkama upozorenje: 'foo' (bin "foo") je generirao 1 upozorenje (pokrenite 'cargo fix —bin "foo"' da biste primijenili 1 prijedlog)
  • Cargo je dodao izlaz preporuke za korištenje naredbe "cargo add" kada pokušavate instalirati biblioteku s naredbom "cargo install".
  • Kako bi se smanjilo vrijeme kompilacije, uključivanje informacija za otklanjanje grešaka u skripte za izgradnju je zaustavljeno prema zadanim postavkama. Ako se skripte za izgradnju uspješno pokreću, promjena neće rezultirati vidljivim razlikama, ali ako dođe do kvarova, dump praćenja će sadržavati manje informacija. Da biste vratili staro ponašanje u Cargo.toml, trebate dodati: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Novi dio API-ja je premješten u kategoriju stabilnih, uključujući metode i implementacije osobina koje su stabilizirane:
    • CStr::od_bajtova_do_nule
    • core::ffi::FromBytesUntilNulError
  • Atribut "const", koji određuje mogućnost korištenja u bilo kojem kontekstu umjesto konstanti, koristi se u funkcijama:
    • SocketAddr::novo
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::novo
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::novo
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Dodata mogućnost upotrebe tačnih i lažnih zastavica u argumentima kompajlera.

izvor: opennet.ru

Dodajte komentar