Rust är ett multiparadigm, allmänt, kompilerat programmeringsspråk.
Den nya versionen av Rust 1.78 har redan släppts och nya funktioner implementeras, såväl som stabilisering av vissa API:er, förbättringar i Cargo och mer.
För de som inte är medvetna om detta programmeringsspråk bör de veta det fokuserar på minnessäkerhet och ger möjlighet att uppnå hög parallellitet av jobb samtidigt som man undviker användningen av en sophämtare och körtid (körtiden reduceras till grundläggande initiering och standardbiblioteksunderhåll).
De viktigaste nya funktionerna i Rust 1.78
I denna nya version presenterad av Rust 1.78 har ökat sitt minimikrav för Windows 10, Förutom det kompilatorn ändrades för att använda LLVM 18. När du använder LLVM 18 för x86-32- och x86-64-arkitekturer har ABI som är kopplad till u128- och i128-typerna ändrats.
Angående förändringarna är en av egenskaperna som sticker ut att Rust stöder nu ett attributnamnområde «#[diagnos]", Vad ger ett sätt att påverka de felmeddelanden som produceras av kompilatorn. Dessa behandlas som ledtrådar som kompilatorn inte behöver använda, och det är inte heller ett fel att tillhandahålla en diagnostik som kompilatorn inte känner igen. Detta tillåter källkod att tillhandahålla diagnostik även när de inte stöds av alla kompilatorer, oavsett om det är olika versioner eller helt olika implementeringar.
Dessutom, en global cache har stabiliserats i Cargo som lagrar information om den senaste dataanvändningen. Denna cache finns i $CARGO_HOME/.global-cache och använder SQLite för dess implementering. Den uppdateras automatiskt för att återspegla de senaste ändringarna av index, låda, kodkatalog, git-klon och git-checkout, vilket förbättrar effektiviteten och hastigheten för beroendehanteringsoperationer i utvecklingsprojekt.
En annan nyhet i Rust 1.78 är att Rust standardbiblioteket har Olika uttalanden för förutsättningar för osäkra funktioner som nu kan skjutas upp till kodgenerering. Detta gör att dessa kontroller kan utföras historiskt sett hade de bara aktiverats i builds «#[cfg(debug_assertions)]» för att undvika att påverka prestandan i releaseversionen. Med den här ändringen kan användare nu upptäcka odefinierat beteende i sin kod, även om detaljer om hur mycket som kontrolleras i allmänhet inte är stabila. För att aktivera kontroller räcker det nu att aktivera felsökningspåståenden för test- eller felsökningsbyggen av koden.
Utöver det nu beteendet hos standardbiblioteksfunktioner som påverkar anpassningen av pekare och sektorer det är nu förutsägbart vid körning och beror på indata. Funktionen pointer::align_offset, som beräknar offset för att justera pekaren returnerar nu använda::MAX endast om operationen misslyckas. Funktionerna slice::align_to och slice::align_to_mut, som omvandlar skivor till en representation med ett justerat mittsegment och de ursprungliga start- och slutsnitten, returnerar nu alltid den största mittdelen.
Däremot nämns det Följande API:er har flyttats till kategorin "stabil".: impl Läs för &Stdin, impl Från för io::Fel och genomförandet impl som tillåter användning av ? Storlek.
Av Andra förändringar som sticker ut av denna nya version:
- Den andra nivån av stöd för målplattformen Add wasm32-wasip1 har implementerats. Den andra stödnivån innebär en monteringsgaranti.
- Platformen wasm32-wasi-preview1-threads har bytt namn till wasm32-wasip1-threads.
- I Cargo package manager har version 4 av låsfilerna (lockfile v4) stabiliserats. Cargo använder nu denna version som standard för att säkerställa konsekvens och effektiv hantering av beroenden över projekt.
Om du är det intresserad av att veta mer om det, du kan kolla in detaljerna följande länk.
Till sist, för de som är det Intresserad av att uppgradera från en tidigare version av Rust installerad via rustup kan du få den nya versionen av Rust 1.78 med:
rustup update stable
Om du inte redan har Rust installerat på ditt system kan du göra det genom att köra följande kommando i en terminal:
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh