Rust 1.69 programmeringssprog udgivelse

Det generelle programmeringssprog Rust 1.69, grundlagt af Mozilla-projektet, men nu udviklet i regi af den uafhængige non-profit organisation Rust Foundation, er blevet frigivet. Sproget fokuserer på hukommelsessikkerhed og giver midlerne til at opnå høj jobparallelisme, samtidig med at man undgår brugen af ​​en skraldeopsamler og runtime (runtime reduceres til grundlæggende initialisering og vedligeholdelse af standardbiblioteket).

Rusts hukommelseshåndteringsmetoder sparer udvikleren for fejl ved manipulation af pointere og beskytter mod problemer, der opstår på grund af hukommelseshåndtering på lavt niveau, såsom adgang til et hukommelsesområde efter det er blevet frigivet, dereferencing af nul-pointere, bufferoverskridelser osv. For at distribuere biblioteker, levere builds og administrere afhængigheder udvikler projektet Cargo Package Manager. Crates.io-lageret understøttes til hosting af biblioteker.

Hukommelsessikkerhed er tilvejebragt i Rust på kompileringstidspunktet gennem referencekontrol, holde styr på objektejerskab, holde styr på objektlevetider (scopes) og vurdere rigtigheden af ​​hukommelsesadgang under kodeudførelse. Rust giver også beskyttelse mod heltalsoverløb, kræver obligatorisk initialisering af variabelværdier før brug, håndterer fejl bedre i standardbiblioteket, anvender konceptet med uforanderlige referencer og variabler som standard, tilbyder stærk statisk skrivning for at minimere logiske fejl.

Vigtigste innovationer:

  • Cargo-pakkemanageren implementerer detektering af advarsler, der kan løses automatisk, og output af passende anbefalinger til at køre "cargo fix" eller "cargo clippy -fix". advarsel: ubrugt import: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | brug std::hash::Hash; | ^^^^^^^^^^^^^^^^ | = bemærk: '#[warn(unused_imports)]' aktiveret som standard advarsel: 'foo' (bin "foo") genererede 1 advarsel (kør 'cargo fix —bin "foo"' for at anvende 1 forslag)
  • Cargo har tilføjet en anbefalingsudgang for brug af kommandoen "cargo add", når du forsøger at installere et bibliotek med kommandoen "cargo install".
  • For at reducere kompileringstiden er inkluderingen af ​​fejlfindingsoplysninger i build-scripts som standard blevet stoppet. Hvis build-scripts kører med succes, vil ændringen ikke resultere i nogen synlige forskelle, men hvis der opstår fejl, vil traceback-dumpet indeholde mindre information. For at returnere den gamle adfærd til Cargo.toml skal du tilføje: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • En ny del af API'et er blevet flyttet til kategorien stabil, inklusive metoder og implementeringer af egenskaber er blevet stabiliseret:
    • CStr::from_bytes_until_nul
    • kerne::ffi::FromBytesUntilNulError
  • "const"-attributten, som bestemmer muligheden for at bruge den i enhver sammenhæng i stedet for konstanter, bruges i funktionerne:
    • SocketAddr::nyt
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::nyt
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::nyt
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Tilføjet muligheden for at bruge sande og falske flag i compilerargumenter.

Kilde: opennet.ru

Tilføj en kommentar