UtgÄvan av Rust 1.90. Ett verktyg för att skapa Windows-drivrutiner i Rust.

ProgrammeringssprÄket Rust 1.90 har publicerats, som ursprungligen utvecklades av Mozilla men nu vidareutvecklas under en oberoende, icke-vinstdrivande organisation, Rust Foundation. SprÄket fokuserar pÄ sÀker minneshantering och ger verktyg för att uppnÄ hög parallellitet i uppgiftsutförandet, utan att behöva en skrÀpsamlare och runtime (runtime begrÀnsas till grundlÀggande initialisering och underhÄll av standardbiblioteket).

Minneshanteringsmetoderna i Rust skyddar utvecklare frÄn att göra fel vid manipulering av pekare och skyddar mot problem som uppstÄr vid lÄg nivÄ minnesarbete, sÄsom att komma Ät minnesomrÄden efter att de har frigjorts, dereferera nullpekare, buffer overflow, etc. För distribution av bibliotek, byggande och hantering av projektberoenden utvecklas paketförvaltaren Cargo. För lagring av bibliotek stöds ett repository pÄ crates.io.

SÀker minneshantering sÀkerstÀlls i Rust under kompilering genom att kontrollera referenser, spÄra Àgandeskap över objekt, ta hÀnsyn till livslÀngden av objekt (synlighet) och utvÀrdera korrekt minnesÄtkomst under körning av koden. Rust erbjuder ocksÄ verktyg för att skydda mot heltalsöverflöden, krÀver obligatorisk initialisering av variabelvÀrden innan de anvÀnds, hanterar fel bÀttre i standardbiblioteket, tillÀmpar konceptet av oförÀnderliga (immutable) referenser och variabler som standard och erbjuder stark statisk typning för att minimera logiska fel.

Huvudsakliga nyheter:

  • I Linux pĂ„ datorer med x86_64-arkitektur anvĂ€nds som standard LLD-lĂ€nkningsverktyget frĂ„n LLVM-projektet för dynamisk lĂ€nkning av crate-paket. AnvĂ€ndningen av LLD jĂ€mfört med BFD-lĂ€nkningsverktyget har lett till ökad prestanda vid lĂ€nkning av stora körbara filer och projekt med stora mĂ€ngder debug-information, samt snabbare inkrementell ombyggnad. I de flesta fall Ă€r LLD bakĂ„tkompatibel med BFD. Om problem uppstĂ„r kan du Ă„tergĂ„ till BFD genom att ange i miljövariabeln RUSTFLAGS flaggan "-C linker-features=-lld" eller genom att lĂ€gga till i konfigurationsfilen .cargo/config.toml: [target.x86_64-unknown-linux-gnu] rustflags = ["-Clinker-features=-lld"]
  • I pakethanteraren cargo har kommandot "publish" en "--workspace"-funktion som tillĂ„ter automatisk publicering av alla paket frĂ„n det valda arbetsutrymmet (en uppsĂ€ttning paket som anvĂ€nder en gemensam Cargo.lock-fil och en gemensam byggresultatskatalog), vilket bevarar paketens ordning och beaktar beroenden mellan dem.
  • En ny uppsĂ€ttning API har blivit stabiliserad, inklusive stabilisering av metoder och implementeringar av traits:
    • u{n}::checked_sub_signed
    • u{n}::overflowing_sub_signed
    • u{n}::saturating_sub_signed
    • u{n}::wrapping_sub_signed
    • impl Copy for IntErrorKind
    • impl Hash for IntErrorKind
    • impl PartialEq<&CStr> for CStr
    • impl PartialEq<CString> for CStr
    • impl PartialEq<Cow<CStr>> for CStr
    • impl PartialEq<&CStr> for CString
    • impl PartialEq<CStr> for CString
    • impl PartialEq<Cow<CStr>> for CString
    • impl PartialEq<&CStr> for Cow
    • impl PartialEq<CStr> for Cow
    • impl PartialEq<CString> for Cow
  • Indikatorn "const" har tillĂ€mpats i funktioner:
    • <[T]>::reverse
    • f32::floor
    • f32::ceil
    • f32::trunc
    • f32::fract
    • f32::round
    • f32::round_ties_even
    • f64::floor
    • f64::ceil
    • f64::trunc
    • f64::fract
    • f64::round
    • f64::round_ties_even
  • För mĂ„lplattformar baserade pĂ„ Musl-biblioteket, som befinner sig pĂ„ tredje stöd-nivĂ„, har som standard dynamisk lĂ€nkning inkluderats: mips64-unknown-linux-muslabi64, powerpc64-unknown-linux-musl, powerpc-unknown-linux-musl, powerpc-unknown-linux-muslspe, riscv32gc-unknown-linux-musl, s390x-unknown-linux-musl och thumbv7neon-unknown-linux-musleabihf.
  • Den mĂ„lplattform "x86_64-apple-darwin" har flyttats frĂ„n första till andra nivĂ„ns stöd (Apple planerar att avveckla stödet för x86_64-arkitekturen). Första nivĂ„ns stöd innebĂ€r skapandet av binĂ€rpaket, grundlig testning och högsta möjliga garantin för plattformsstöd — varje förĂ€ndring i kompilatorn kontrolleras genom att hela testsuiten körs. Andra nivĂ„ns stöd innebĂ€r garanti för byggande, men ingen garanti vid genomförande av testsuiten.

Det Àr ocksÄ vÀrt att nÀmna att Microsoft utvecklar verktyg för att skapa Windows-drivrutiner i Rust-sprÄket. PÄ GitHub har ett set av crate-paket redan publicerats för att skapa drivrutiner baserade pÄ WDM (Windows Driver Kit), KMDF (Kernel-Mode Driver Framework), och UMDF (User-Mode Driver Framework), samt Win32-tjÀnster som Àr lÀmpliga för anvÀndning i Windows 11. Projektets mÄl Àr att ge Rust-utvecklare bibliotek och funktioner som liknar dem som erbjuds i WDK-verktyget för C-drivrutinsutvecklare. För nÀrvarande anvÀnder Rust-drivrutinsutvecklingsverktyget mÄnga unsafe-anrop vid interaktion med Windows-subsystem, men det planeras att i framtiden förbereda sÀkra abstraktioner för kÀrnstrukturer och DDI (Device Driver Interface). Projektets resultat distribueras under MIT och Apache 2.0-licenser.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster