Rust 1.69 programspråk release

Utgivningen av Rust 1.69 allmänt programmeringsspråk, grundat av Mozilla-projektet, men nu utvecklat under överinseende av den oberoende ideella organisationen Rust Foundation, har publicerats. Språket fokuserar på minnessäkerhet och ger möjlighet att uppnå hög jobbparallellism samtidigt som man undviker användningen av en skräpsamlare och körtid (körtiden reduceras till grundläggande initiering och underhåll av standardbiblioteket).

Rusts minneshanteringsmetoder räddar utvecklaren från fel vid manipulering av pekare och skyddar mot problem som uppstår på grund av minneshantering på låg nivå, som att komma åt ett minnesområde efter att det har frigjorts, avläsning av nollpekare, buffertöverskridningar, etc. För att distribuera bibliotek, tillhandahålla builds och hantera beroenden utvecklar projektet Cargo package manager. Crates.io-förvaret stöds för värdbibliotek.

Minnessäkerhet tillhandahålls i Rust vid kompilering genom referenskontroll, hålla reda på objektägande, hålla reda på objektlivslängder (scopes) och bedöma riktigheten av minnesåtkomst under kodexekvering. Rust ger också skydd mot heltalsspill, kräver obligatorisk initiering av variabelvärden innan användning, hanterar fel bättre i standardbiblioteket, tillämpar konceptet med oföränderliga referenser och variabler som standard, erbjuder stark statisk typning för att minimera logiska fel.

Huvudsakliga innovationer:

  • Lastpakethanteraren implementerar upptäckten av varningar som kan lösas automatiskt och lämpliga rekommendationer för att köra "cargo fix" eller "cargo clippy --fix". varning: oanvänd import: 'std::hash::Hash' --> src/main.rs:1:5 | 1 | använd std::hash::hash; | ^^^^^^^^^^^^^^^^ | = notera: '#[warn(unused_imports)]' på som standard varning: 'foo' (bin "foo") genererade 1 varning (kör 'cargo fix --bin "foo"' för att tillämpa 1 förslag)
  • Lade till Cargo för att visa en rekommendation om att använda kommandot "cargo add" när du försöker installera ett bibliotek med kommandot "cargo install".
  • För att minska kompileringstiden har felsökningsinformation i byggskript inaktiverats som standard. Om byggskripten körs framgångsrikt kommer ändringen inte att göra någon synlig skillnad, men om den misslyckas kommer backspårningsdumpen att innehålla mindre information. För att återställa det gamla beteendet till Cargo.toml lägg till: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • En ny del av API:t har flyttats till kategorin stabil, inklusive metoder och implementeringar av egenskaper har stabiliserats:
    • CStr::from_bytes_until_nul
    • kärna::ffi::FromBytesUntilNulError
  • Attributet "const", som bestämmer möjligheten att använda det i alla sammanhang istället för konstanter, används i funktioner:
    • 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
  • Lade till möjligheten att använda true och false flaggor i kompilatorargument.

Källa: opennet.ru

Lägg en kommentar