• Rust 1.94 gör språket mer uttrycksfullt och kraftfullt

    Programmeringsspråket Rust fortsätter att utvecklas i snabb takt. Den nya versionen Rust 1.94 introducerar flera förbättringar som gör språket både mer ergonomiskt och mer kraftfullt. Bland nyheterna finns en ny iterator för slice-data, förbättrad konfigurationshantering i Cargo, stöd för den senaste versionen av TOML-formatet och flera stabiliserade API:er i standardbiblioteket.

    Tillsammans innebär förändringarna att utvecklare kan skriva mer tydlig kod, organisera projekt bättre och dra nytta av nya funktioner i både språket och verktygskedjan.

    Ny iterator för slices: array_windows

    En av de mest uppmärksammade nyheterna är metoden array_windows för slices. Den fungerar på liknande sätt som den befintliga metoden windows, men med en viktig skillnad: den returnerar arrayer med fast storlek i stället för dynamiska slices.

    Detta gör att kompilatorn kan veta storleken på varje fönster redan vid kompilering, vilket förenklar kod och kan ge bättre optimeringar.

    En praktisk användning är när man vill analysera mönster i en dataström. Ett klassiskt exempel är att leta efter så kallade ABBA-mönster, där två olika tecken följs av samma två tecken i omvänd ordning, exempelvis abba eller xyyx.

    Med array_windows kan en sådan kontroll skrivas mycket kompakt:

    Här kan kompilatorn automatiskt förstå att varje fönster ska bestå av fyra element eftersom de destruktureras till fyra variabler.

    Cargo får bättre stöd för modulär konfiguration

    Rusts byggverktyg Cargo får i version 1.94 en ny funktion: möjligheten att inkludera konfigurationsfiler i andra konfigurationsfiler.

    Detta gör att större projekt kan dela upp sin konfiguration i flera mindre filer, vilket gör dem enklare att underhålla och återanvända mellan olika projekt eller utvecklingsmiljöer.

    Ett exempel är:

    Det går även att ange mer avancerade alternativ via så kallade inline-tabeller, exempelvis om en konfigurationsfil är valfri:

    Detta gör det möjligt att skapa konfigurationer som fungerar både lokalt och i olika utvecklingsmiljöer utan att alla filer behöver finnas överallt.

    Stöd för TOML 1.1

    Cargo kan nu också läsa TOML 1.1, den senaste versionen av konfigurationsformatet som används i Rust-projekt.

    Bland förbättringarna i TOML 1.1 finns:

    • inline-tabeller som kan skrivas över flera rader
    • stöd för fler escape-sekvenser i strängar
    • möjlighet att utelämna sekunder i tidsangivelser
    • trailing commas i vissa strukturer

    Det innebär exempelvis att beroenden i Cargo.toml kan skrivas mer läsbart:

    Om man använder dessa nya funktioner höjs dock projektets MSRV (Minimum Supported Rust Version), eftersom äldre Cargo-versioner inte kan tolka den nya syntaxen. Samtidigt hanterar Cargo detta automatiskt vid publicering genom att skriva om manifestfiler så att de förblir kompatibla med äldre verktyg.

    Nya matematiska konstanter i standardbiblioteket

    Rusts standardbibliotek har också utökats med några klassiska matematiska konstanter. Bland de nya konstanterna finns:

    • Euler–Mascheroni-konstanten (EULER_GAMMA)
    • det gyllene snittet (GOLDEN_RATIO)

    De finns tillgängliga för både f32 och f64 och kan användas direkt i numeriska beräkningar utan att utvecklare behöver definiera dem själva.

    Fler stabiliserade API:er

    Som i varje Rust-release har även flera tidigare experimentella funktioner nu blivit stabila API:er. Bland dessa finns bland annat:

    • array_windows och element_offset för slices
    • nya metoder för LazyCell och LazyLock
    • nya metoder i iteratorn Peekable
    • hårdvaruintrinsics för AVX-512 FP16 på x86 och NEON FP16 på AArch64

    Dessutom kan vissa funktioner, som mul_add för flyttal, nu användas i konstanta uttryck.

    Fortsatt snabb utveckling av Rust

    Rust 1.94 visar tydligt hur språket fortsätter att utvecklas i både små och stora steg. Förbättringar som array_windows gör koden mer uttrycksfull, medan förändringar i Cargo och TOML gör projekthanteringen mer flexibel.

    Utvecklare som redan använder Rust kan uppdatera till den nya versionen med kommandot:

    Den nya versionen är resultatet av arbete från ett stort antal bidragsgivare i Rust-communityt – ett exempel på hur ett modernt open source-projekt fortsätter att förbättras genom globalt samarbete.

    C vs Rust

    C

    C är ett klassiskt programspråk som har använts i årtionden för operativsystem, drivrutiner, inbyggda system och annan prestandakritisk programvara.

    Språket ger programmeraren mycket direkt kontroll över minne och hårdvara, vilket gör det snabbt och flexibelt.

    Nackdelen är att C saknar inbyggt skydd mot många vanliga minnesfel, vilket kan leda till buggar, krascher och säkerhetsproblem.

    Rust

    Rust är ett modernare systemspråk som också fokuserar på hög prestanda, men samtidigt vill minska risken för minnesfel och osäker kod.

    Genom sitt ägarskapssystem och sina kompilatorkontroller kan Rust förhindra många problem redan innan programmet körs.

    Det gör språket särskilt intressant för säkerhetskritiska system, servrar, verktyg och ny systemprogrammering.

    https://blog.rust-lang.org/2026/03/05/Rust-1.94.0

    Teknisk fakta: Rust 1.94

    Version: Rust 1.94.0

    Typ av uppdatering: Stabil utgåva

    Viktig nyhet: array_windows för slices

    Ny Cargo-funktion: stöd för include i konfigurationsfiler

    Manifestformat: Cargo kan nu tolka TOML 1.1

    Nya matematiska konstanter: EULER_GAMMA och GOLDEN_RATIO

    Fler förbättringar: stabiliserade API:er i standardbiblioteket och fler funktioner tillgängliga i const-kontext

    Uppdateringskommando:

    rustup update stable
  • Stöd för AMD Zen 6, Arm v9.7 och mer RISC-V

    När nästa generations processorer från AMD, Arm och RISC-V står för dörren måste även mjukvarans grundverktyg ligga steget före. Med GNU Binutils 2.46 tar utvecklarvärlden ett viktigt kliv mot framtiden genom att lägga till stöd för kommande CPU-arkitekturer, förbättrad felsökning och en moderniserad verktygskedja som gör fria operativsystem redo för hårdvara som ännu inte nått marknaden.

    När nya generationer av processorer närmar sig marknaden räcker det inte med snabbare kisel och fler kärnor. För att operativsystem och program verkligen ska kunna utnyttja ny hårdvara måste verktygen som bygger dem hänga med. Med version 2.46 tar GNU Binutils ett tydligt kliv framåt och gör utvecklare redo för kommande CPU-arkitekturer.

    Stöd för AMD Zen 6, Arm v9.7 och mer RISC-V

    En av de mest uppmärksammade nyheterna är att Binutils 2.46 nu har stöd för AMD:s kommande Zen 6-arkitektur. Även om processorerna ännu inte finns på marknaden innebär detta att mjukvara kan byggas och testas i god tid, så att ekosystemet är redo vid lansering.

    På Arm-sidan fortsätter utvecklingen i snabb takt. Stödet för Arm v9.6 är nu färdigställt, samtidigt som Arm v9.7 introduceras via flaggan -march=armv9.7-a. Dessutom finns tidigt stöd för framtida tekniker som POE2 och vMTE, vilket visar att verktygskedjan redan blickar framåt mot nästa generation av Arm-baserade system.

    Även RISC-V får ett lyft. Nya tillägg som sdtrig v1.0 och ssstrict v1.0 stärker stödet för den öppna instruktionsuppsättningen och gör plattformen mer attraktiv för både forskning och kommersiella produkter.

    SFrame Version 3 blir standard

    Assemblern i Binutils 2.46 använder nu SFrame Version 3 som standard. Det här påverkar framför allt hur stackramar och felsökningsinformation hanteras. För utvecklare innebär det bättre stöd för mycket stora program, över 2 gigabyte i storlek, mer flexibla ramlayouter och tydligare information om yttersta funktionsramar. Även hanteringen av signaler förbättras, vilket ger mer tillförlitliga bakspår vid felsökning.

    Nytt delat bibliotek för SFrame

    Som en följd av SFrame-uppdateringen introduceras ett nytt versionerat delat bibliotek, libsframe.so.3. Det använder symbolversionering under namnet LIBSFRAME_3.0 och är ett viktigt steg för att säkerställa långsiktig kompatibilitet mellan olika versioner av verktygen.

    Striktare kontroller och färre dolda fel

    Utvecklarna har också passat på att skärpa den interna kvaliteten. Verktyg som objcopy gör nu striktare kontroller av målformat, vilket gör att felaktig användning upptäcks tidigare i byggprocessen. Det äldre, mer tillåtande beteendet finns fortfarande kvar, men kräver nu att man uttryckligen anger vilket format som ska användas.

    Städning bland gamla plattformar

    För att minska underhållsbördan har stödet för vissa äldre och i praktiken oanvända mål tagits bort. Exempel på detta är NaCl och Solaris på PowerPC. Genom att rensa bort sådant som inte längre används kan utvecklingen fokusera på moderna och relevanta plattformar.

    Fler förbättringar under huven

    Utöver de stora nyheterna innehåller Binutils 2.46 mängder av buggfixar och mindre förbättringar. Programmet readelf kan nu visa innehållet i Global Offset Tables, stödet för länkartaggning har förbättrats och källkodstarbollarna skapas på ett sätt som underlättar reproducerbara byggen.

    En tyst men viktig uppdatering

    GNU Binutils 2.46 är ingen version som märks direkt av vanliga användare, men för utvecklare och hela open source-världen är den central. Den gör verktygskedjan redo för framtidens processorer, förbättrar felsökning i stora program och minskar teknisk skuld. Det är ännu ett exempel på hur grundläggande infrastruktur ofta utvecklas i det tysta, men med enorm betydelse för allt som byggs ovanpå.

    https://sourceware.org/pipermail/binutils/2026-February/148149.html

    Teknisk faktaruta: GNU Binutils 2.46
    Vad är det?
    Verktygssamling för binärhantering i GNU-toolchain, bl.a. assembler (as), länkare (ld), objcopy, readelf.
    Processor- och ISA-stöd
    • AMD: igenkänning/stöd för Zen 6
    • Arm: Arm v9.6 färdigställt, Arm v9.7 via -march=armv9.7-a
    • Arm: tidigt stöd för kommande tekniker (POE2, vMTE)
    • RISC-V: nya tillägg, bl.a. sdtrig v1.0 och ssstrict v1.0
    SFrame (stack frame-format)
    Assemblern emitterar SFrame Version 3 som standard, med stöd för binärer > 2 GiB, flexiblare frame-layout, markering av yttersta frames och förbättrad hantering av signal-trampoliner.
    Nytt bibliotek
    Ny versionerad delad bibliotekfil: libsframe.so.3
    Symbolversionering: LIBSFRAME_3.0
    Skärpta kontroller
    Striktare validering och plugin-hantering. Exempel: objcopy kontrollerar målformat hårdare; äldre beteende kan kräva att utdataformat anges explicit.
    Övrigt
    • readelf kan visa innehåll i Global Offset Tables (GOT)
    • förbättrad linker-taggning
    • borttaget stöd för vissa äldre mål (t.ex. NaCl, Solaris/PowerPC)
    • jämn release: GOLD-länkaren ingår i källträdet

Etikett: kompilatorer

  • Rust 1.94 gör språket mer uttrycksfullt och kraftfullt

    Programmeringsspråket Rust fortsätter att utvecklas i snabb takt. Den nya versionen Rust 1.94 introducerar flera förbättringar som gör språket både mer ergonomiskt och mer kraftfullt. Bland nyheterna finns en ny iterator för slice-data, förbättrad konfigurationshantering i Cargo, stöd för den senaste versionen av TOML-formatet och flera stabiliserade API:er i standardbiblioteket. Tillsammans innebär förändringarna att utvecklare…

  • Stöd för AMD Zen 6, Arm v9.7 och mer RISC-V

    När nästa generations processorer från AMD, Arm och RISC-V står för dörren måste även mjukvarans grundverktyg ligga steget före. Med GNU Binutils 2.46 tar utvecklarvärlden ett viktigt kliv mot framtiden genom att lägga till stöd för kommande CPU-arkitekturer, förbättrad felsökning och en moderniserad verktygskedja som gör fria operativsystem redo för hårdvara som ännu inte nått…