Rust 1.69 programmeringsspråkutgivelse

Utgivelsen av Rust 1.69 generell programmeringsspråk, grunnlagt av Mozilla-prosjektet, men nå utviklet i regi av den uavhengige ideelle organisasjonen Rust Foundation, har blitt publisert. Språket fokuserer på minnesikkerhet og gir midler til å oppnå høy jobbparallellisme samtidig som man unngår bruk av en søppeloppsamler og kjøretid (kjøretiden reduseres til grunnleggende initialisering og vedlikehold av standardbiblioteket).

Rusts minnehåndteringsmetoder sparer utvikleren fra feil ved manipulering av pekere og beskytter mot problemer som oppstår på grunn av minnehåndtering på lavt nivå, for eksempel tilgang til et minneområde etter at det har blitt frigjort, avreferering av null-pekere, bufferoverskridelser, etc. For å distribuere biblioteker, tilby bygg og administrere avhengigheter, utvikler prosjektet Cargo-pakkeansvarlig. Crates.io-depotet støttes for hosting av biblioteker.

Minnesikkerhet er gitt i Rust på kompileringstidspunktet gjennom referansesjekking, holde styr på objekteierskap, holde styr på objektlevetider (scopes), og vurdere riktigheten av minnetilgang under kjøring av kode. Rust gir også beskyttelse mot heltallsoverløp, krever obligatorisk initialisering av variabelverdier før bruk, håndterer feil bedre i standardbiblioteket, bruker konseptet med uforanderlige referanser og variabler som standard, tilbyr sterk statisk skriving for å minimere logiske feil.

Hovedinnovasjoner:

  • Cargo-pakkebehandleren implementerer gjenkjenning av advarsler som kan løses automatisk, og utdata av passende anbefalinger for å kjøre "cargo fix" eller "cargo clippy -fix". advarsel: ubrukt import: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | bruk std::hash::Hash; | ^^^^^^^^^^^^^^^^ | = merk: '#[warn(unused_imports)]' på som standard advarsel: 'foo' (bin "foo") genererte 1 advarsel (kjør 'cargo fix —bin "foo"' for å bruke 1 forslag)
  • Cargo har lagt til en anbefalingsutgang for bruk av kommandoen "cargo add" når du prøver å installere et bibliotek med kommandoen "cargo install".
  • For å redusere kompileringstiden er inkludering av feilsøkingsinformasjon i byggeskript stoppet som standard. Hvis byggeskriptene kjører vellykket, vil ikke endringen resultere i noen synlige forskjeller, men hvis det oppstår feil, vil tilbakesporingsdumpen inneholde mindre informasjon. For å returnere den gamle oppførselen til Cargo.toml bør du legge til: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • En ny del av API har blitt flyttet til kategorien stabil, inkludert metodene og implementeringene av egenskaper er stabilisert:
    • CStr::from_bytes_until_nul
    • kjerne::ffi::FromBytesUntilNulError
  • "const"-attributtet, som bestemmer muligheten for å bruke det i enhver kontekst i stedet for konstanter, brukes i funksjonene:
    • SocketAddr::ny
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::ny
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::ny
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Lagt til muligheten til å bruke sanne og falske flagg i kompilatorargumenter.

Kilde: opennet.ru

Legg til en kommentar