Izdanje Rust programskog jezika 1.69

Objavljen je programski jezik opće namjene Rust 1.69, utemeljen na projektu Mozilla, ali sada razvijen pod pokroviteljstvom nezavisne neprofitne organizacije Rust Foundation. Jezik se fokusira na sigurnost memorije i pruža sredstva za postizanje visokog paralelizma poslova uz izbjegavanje upotrebe skupljača smeća i vremena izvođenja (vrijeme izvođenja je smanjeno na osnovnu inicijalizaciju i održavanje standardne biblioteke).

Rustove metode rukovanja memorijom spašavaju programere od pogrešaka pri manipuliranju pokazivačima i štite od problema koji nastaju zbog rukovanja memorijom na niskoj razini, kao što je pristup memorijskom području nakon što je ono oslobođeno, dereferenciranje nultih pokazivača, prekoračenje međuspremnika, itd. Za distribuciju biblioteka, pružanje nadogradnji i upravljanje ovisnostima, projekt razvija upravitelja paketa Cargo. Repozitorij crates.io podržan je za smještaj knjižnica.

Sigurnost memorije osigurana je u Rustu tijekom kompajliranja provjerom referenci, praćenjem vlasništva objekta, praćenjem životnih vijekova objekta (opsega) i procjenom ispravnosti pristupa memoriji tijekom izvođenja koda. Rust također pruža zaštitu od prekoračenja cjelobrojnih brojeva, zahtijeva obaveznu inicijalizaciju vrijednosti varijabli prije upotrebe, bolje obrađuje pogreške u standardnoj biblioteci, primjenjuje koncept nepromjenjivih referenci i varijabli prema zadanim postavkama, nudi snažno statično tipkanje za smanjenje logičkih pogrešaka.

Glavne inovacije:

  • Upravitelj paketa Cargo implementira otkrivanje upozorenja koja se mogu automatski riješiti i izlaz odgovarajućih preporuka za pokretanje "cargo fix" ili "cargo clippy -fix". upozorenje: neiskorišteno import: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | koristiti std::hash::Hash; | ^^^^^^^^^^^^^^^^ | = napomena: '#[warn(unused_imports)]' uključeno zadano upozorenje: 'foo' (bin "foo") generira 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 pomoću naredbe "cargo install".
  • Kako bi se smanjilo vrijeme kompilacije, uključivanje informacija o ispravljanju pogrešaka u skripte za izgradnju zaustavljeno je prema zadanim postavkama. Ako se skripte za izgradnju uspješno izvode, promjena neće rezultirati nikakvim vidljivim razlikama, ali ako dođe do kvarova, traceback dump će sadržavati manje informacija. Za vraćanje starog ponašanja na Cargo.toml trebali biste dodati: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Novi dio API-ja premješten je u kategoriju stabilnih, uključujući metode i implementacije karakteristika koje su stabilizirane:
    • CStr::from_bytes_until_nul
    • 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
  • Dodana je mogućnost korištenja zastavica true i false u argumentima prevoditelja.

Izvor: opennet.ru

Dodajte komentar