Rust er et multiparadigme, kompileret programmeringssprog til generelle formål.
Den nye version af Rust 1.78 er allerede blevet frigivet og nye funktioner implementeres, samt stabilisering af nogle API'er, forbedringer i Cargo og mere.
For dem, der ikke er klar over dette programmeringssprog, bør de vide det fokuserer på hukommelsessikkerhed og giver midlerne til at opnå høj parallelitet af job, samtidig med at man undgår brugen af ​​en skraldeopsamler og runtime (runtime reduceres til grundlæggende initialisering og standard biblioteksvedligeholdelse).
De vigtigste nye funktioner i Rust 1.78
I denne nye version præsenteret af Rust 1.78 har øget sit minimumskrav til Windows 10, Udover det compileren blev ændret til at bruge LLVM 18. Når du bruger LLVM 18 til x86-32- og x86-64-arkitekturer, er den ABI, der er knyttet til u128- og i128-typerne, blevet ændret.
Med hensyn til ændringerne er en af ​​de egenskaber, der skiller sig ud, at Rust understøtter nu et attributnavneområde «#[diagnose]", hvad giver et middel til at påvirke de producerede fejlmeddelelser af compileren. Disse behandles som hints, som compileren ikke er forpligtet til at bruge, og det er heller ikke en fejl at give en diagnostik, som compileren ikke genkender. Det her tillader kildekoden at give diagnostik, selv når de ikke understøttes af alle compilere, uanset om det er forskellige versioner eller helt forskellige implementeringer.
Derudover en global cache er blevet stabiliseret i Cargo som gemmer oplysninger om det seneste dataforbrug. Denne cache er placeret i $CARGO_HOME/.global-cache og bruger SQLite til implementeringen. Det opdateres automatisk for at afspejle de seneste ændringer til indekset, kassen, kodebiblioteket, git-klonen og git-checkout, hvilket forbedrer effektiviteten og hastigheden af ​​afhængighedsstyringsoperationer i udviklingsprojekter.
En anden ny funktion i Rust 1.78 er, at Rust-standardbiblioteket har forskellige udsagn for forudsætningerne for "usikre" funktioner som nu kan udskydes indtil kodegenerering. Dette gør det muligt at udføre disse kontroller historisk set var de kun blevet aktiveret i builds «#[cfg(debug_assertions)]» for at undgå at påvirke ydeevnen i udgivelsesversionen. Med denne ændring kan brugere nu opdage udefineret adfærd i deres kode, selvom detaljerne om, hvor meget der kontrolleres, generelt ikke er stabile. For at aktivere kontrol er det nu tilstrækkeligt at aktivere fejlretningspåstande for test- eller fejlretningsbuilds af koden.
Ud over det, nu opførsel af standard biblioteksfunktioner der påvirker justeringen af ​​pointere og sektorer den er nu forudsigelig under kørsel og afhænger af inputdataene. Funktionen pointer::align_offset, som beregner offset for at justere markøren, returnerer nu brug::MAX kun hvis operationen mislykkes. Funktionerne slice::align_to og slice::align_to_mut, som transformerer udsnit til en repræsentation med et justeret midterstykke og de oprindelige start- og slutsnit, returnerer nu altid den største midterdel.
På den anden side nævnes det Følgende API'er er blevet flyttet til kategorien "stabil".: impl Læs for &Stdin, impl Fra for io::Fejl og implementeringen impl som tillader brug af ?Størrelse.
Af Andre ændringer, der skiller sig ud af denne nye version:
- Det andet niveau af understøttelse af Add wasm32-wasip1-målplatformen er blevet implementeret. Det andet supportniveau involverer en monteringsgaranti.
- wasm32-wasi-preview1-threads-platformen er blevet omdøbt til wasm32-wasip1-threads.
- I Cargo Package Manager er version 4 af låsefilerne (lockfile v4) blevet stabiliseret. Cargo bruger nu denne version som standard for at sikre konsistens og effektiv styring af afhængigheder på tværs af projekter.
Hvis du er interesseret i at vide mere om det, du kan tjekke detaljerne i følgende link.
Til sidst for dem, der er Interesseret i at opgradere fra en tidligere version af Rust installeret via rustup, kan du få den nye version af Rust 1.78 med:
rustup update stable
Hvis du ikke allerede har Rust installeret på dit system, kan du gøre det ved at køre følgende kommando i en terminal:
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh