• GCC 16.1 är här – och C++ tar ett stort kliv in i 2020-talet

    GCC 16.1 är här och markerar början på en ny fas för GNU Compiler Collection. Med C++20 som nytt standardläge, experimentellt stöd för kommande C++26-funktioner och förbättringar för både diagnostik, optimering och modern hårdvara är detta en release som kan få stor betydelse för utvecklare. Samtidigt kan äldre kodbaser behöva ses över när kompilatorn tar ett tydligt steg bort från C++17-eran.

    Den fria kompilatorsamlingen GCC har fått en ny storversion. Med GCC 16.1 startar den nya GCC 16-serien, och även om en kompilatorrelease kanske inte låter som något som får pulsen att rusa hos alla, är detta en version som många utvecklare kommer att märka av.

    Den största nyheten är att GCC nu byter standardläge för C++: från GNU C++17 till GNU C++20.

    Det betyder att den som kompilerar C++-kod utan att själv ange språkversion nu automatiskt får C++20 som utgångspunkt. För moderna projekt är det goda nyheter. För äldre kodbaser kan det däremot innebära att vissa saker behöver justeras.

    C++20 blir det nya normala

    C++20 var ett stort steg för programmeringsspråket C++. Det introducerade bland annat nya sätt att skriva generisk kod, förbättrade standardbibliotek och funktioner som gör språket mer uttrycksfullt. Att GCC nu gör GNU C++20 till standard är därför en tydlig signal: C++20 är inte längre något framtidsläge, utan något utvecklare bör räkna med i vardagen.

    För de flesta projekt innebär det inte nödvändigtvis katastrof. Men kod som byggts med antagandet att kompilatorn använder C++17 kan börja bete sig annorlunda eller ge nya felmeddelanden. Lösningen är ofta enkel: ange uttryckligen vilken standard projektet ska byggas med, till exempel med flaggan -std=gnu++17, eller uppdatera koden så att den fungerar bra med C++20.

    GCC-utvecklarna meddelar också att stödet för C++20:s standardbibliotek nu räknas som stabilt. Däremot är C++20-moduler fortfarande experimentella och kräver särskild aktivering med -fmodules.

    En försmak av C++26

    GCC 16.1 blickar också framåt. Versionen innehåller experimentellt stöd för flera funktioner som är på väg in i C++26, alltså en kommande version av C++-standarden.

    Bland nyheterna finns stöd för reflection, där program kan undersöka delar av sin egen struktur, contracts, som kan användas för att uttrycka krav och garantier i kod, constexpr exceptions, vilket stärker möjligheterna att göra beräkningar vid kompilering, samt nya bibliotekstyper som std::simd, std::inplace_vector, std::copyable_function och std::function_ref.

    Det här är inte funktioner man bör kasta in i produktionskritisk kod hur som helst. De är fortfarande experimentella. Men för språkintresserade utvecklare och verktygsmakare är GCC 16.1 ett viktigt steg mot nästa generation C++.

    Algol 68 gör oväntad entré

    En av de mer oväntade nyheterna är att GCC nu får en experimentell frontend för Algol 68, kallad ga68.

    Algol 68 är ett klassiskt programmeringsspråk från datorhistoriens mer akademiska hörn. Det hade stort inflytande på senare språk, även om det aldrig blev lika vardagligt använt som C, Pascal eller Fortran. Att GCC nu får stöd för Algol 68 är därför både tekniskt intressant och lite nostalgiskt.

    Frontend:en bygger på språket så som det beskrivs i den reviderade rapporten, inklusive godkända rättelser, och innehåller dessutom vissa GNU-utökningar samt en POSIX-prelude.

    Bättre felmeddelanden och modernare analys

    Kompilatorer handlar inte bara om att omvandla kod till körbara program. De är också ett av utvecklarens viktigaste verktyg för att förstå vad som gått fel.

    I GCC 16.1 har diagnostiken förbättrats. GCC kan nu generera fel- och varningsmeddelanden i ett experimentellt HTML-format, vilket kan göra rapporter mer lättlästa i webbläsare eller utvecklingsverktyg.

    Samtidigt förbättras SARIF-stödet med ny information om kontrollflöde. SARIF är ett format som används för maskinläsbara analysrapporter, till exempel i säkerhetsverktyg och CI-system.

    Det äldre JSON-formatet för diagnostik har tagits bort. Användare som behöver maskinläsbara felrapporter hänvisas i stället till SARIF.

    Mer stöd för moderna språkfunktioner

    På C-sidan utökas stödet för C23 och typen _BitInt till fler processorarkitekturer, bland annat RISC-V, Arm, S/390 och LoongArch. Det gör det enklare att skriva kod som arbetar med heltal av mer exakt definierade bitstorlekar.

    C-frontend:en får också stöd för så kallad counted-by-attribution för pekarfält, vilket kan hjälpa kompilatorn och analysverktyg att förstå hur stora vissa datastrukturer är.

    Fortran-användare får dessutom förbättringar i coarray-stödet. På system med en enda nod finns nu stöd för delat minne med flera trådar, vilket kan förbättra parallella Fortran-program.

    Snabbare kod genom bättre optimeringar

    Som vanligt i en ny GCC-version finns även en rad optimeringsförbättringar. GCC 16.1 har bland annat bättre vektorisering, alltså förmågan att omvandla kod så att processorn kan utföra flera operationer parallellt.

    Kompilatorn kan nu också vektorisera vissa loopar där antalet varv inte är känt i förväg, och hanteringen av reduktioner och tidiga loopavbrott har förbättrats.

    Även Link-Time Optimization, LTO, har fått förbättringar. LTO gör det möjligt för kompilatorn att optimera över flera källfiler när programmet länkas ihop. I GCC 16.1 hanteras top-level assembly bättre med hjälp av flaggan -flto-toplevel-asm-heuristics.

    Dessutom har spekulativ devirtualisering byggts ut, vilket kan hjälpa kompilatorn att optimera indirekta funktionsanrop när den kan göra kvalificerade gissningar om vilken funktion som faktiskt kommer att köras.

    Nya processorer och mer hårdvarustöd

    GCC 16.1 uppdaterar också stödet för ny hårdvara.

    På x86-sidan tillkommer stöd för AMD Zen 6 med -march=znver6, Intel Wildcat Lake med -march=wildcatlake och Intel Nova Lake med -march=novalake.

    För AMD GPU-offloading finns nu experimentellt stöd för MI300, och även LoongArch och IBM Z får ytterligare förbättringar.

    För vanliga användare märks detta kanske inte direkt. Men för den som bygger program för nya servrar, superdatorer eller specialiserad hårdvara kan kompilatorstöd vara avgörande för att få ut maximal prestanda.

    En version som kan kräva städning

    Som med många stora kompilatoruppdateringar finns en hake: kod som fungerade i tidigare GCC-versioner kan behöva ändras.

    Det beror både på den nya C++20-standarden som standardläge och på att kompilatorn blivit bättre på att upptäcka problem. I praktiken kan detta leda till fler varningar eller kompileringsfel i projekt som tidigare byggde utan problem.

    För utvecklare är rådet enkelt: testa tidigt, ange språkstandard tydligt i byggsystemet och läs igenom varningarna. Många av dem kan peka på verkliga problem som tidigare bara råkade passera obemärkt.

    Sammanfattning

    GCC 16.1 är mer än bara ännu en versionssiffra. Det är en tydlig markering om vart C++-världen är på väg. Med C++20 som nytt standardläge, experimentellt stöd för C++26, förbättrad diagnostik, bättre optimeringar och stöd för ny hårdvara är detta en viktig release för både systemutvecklare och språkentusiaster.

    För den som arbetar med äldre C++-kod gäller det att vara uppmärksam. För den som vill använda modernare språkfunktioner är GCC 16.1 däremot ett välkommet steg framåt.

    ”`html

    Faktaruta: GCC 16.1

    > Release: GCC 16.1 är den första stabila versionen i GCC 16-serien.

    > Största nyheten: C++ använder nu GNU C++20 som standard i stället för GNU C++17.

    > För utvecklare: Äldre projekt kan behöva ange språkstandard med exempelvis -std=gnu++17.

    > Framtidsstöd: Experimentellt stöd finns för flera C++26-funktioner.

    > Övrigt: GCC 16.1 innehåller även bättre diagnostik, optimeringar och stöd för ny hårdvara.

    ”`
  • Rspamd 3.13: Ny era för smartare spamfilter med multiclass Bayes och AI-stöd

    Tre månader efter förra versionen lanseras nu Rspamd 3.13 – en uppdatering som förvandlar spamfiltret till ett ännu smartare verktyg. Med stöd för multiclass Bayes, AI-drivna analyser och förbättrat webgränssnitt tar systemet ett stort steg mot framtidens e-posthantering.

    I en tid då e-postflöden översvämmas av skräppost, nätfiske och automatiserade meddelanden blir intelligenta filter allt viktigare. Rspamd, ett avancerat och öppet källkodsbaserat spamfilter som används i allt från mejlservrar till säkerhetslösningar, har nu släppt version 3.13. Denna uppdatering introducerar flera stora förbättringar – med allt från en helt ny multiclass Bayes-motor till bättre AI-stöd och moderniserade verktyg.

    Från ”spam eller inte spam” till flera kategorier
    Traditionellt har spamfilter byggt på en enkel modell: meddelanden delas upp i två kategorier – ”spam” eller ”ham” (laglig mejl). Rspamd 3.13 bryter denna binära logik och inför multiclass Bayes-klassificering.

    Nu kan systemet hantera två till tjugo olika klasser av mejl, till exempel spam, nyhetsbrev, transaktionella kvitton eller interna notifieringar. Allt beräknas i ett enda Redis-anrop per meddelande, vilket gör processen både effektiv och flexibel.

    För administratörer innebär detta att de kan bygga mycket mer nyanserade filter, samtidigt som systemet är bakåtkompatibelt med den klassiska ”is_spam”-konfigurationen.

    AI-modulen får en rejäl översyn
    En annan central nyhet är att Rspamd\:s neuralmodul har byggts om från grunden. Den är nu provider-baserad, vilket gör den lättare att utöka och integrera med olika typer av AI-lösningar. Dessutom har stöd för LLM-embeddings (stora språkmodellers inbäddningar) förbättrats. För att hålla nere kostnader och svarstider används Redis-baserad caching, vilket gör att systemet kan återanvända AI-beräkningar på ett smart sätt.

    Detta öppnar för integration med stora språkmodeller, inklusive OpenAI:s GPT-5, som nu har fått sitt första stöd i Rspamd.

    Smidigare tolkning av mejl
    På analysnivå har även Rspamd blivit vassare:

    • MIME-parsern kan nu automatiskt känna igen olika meddelandetyper.
    • HTML-parsern fångar upp fler signaler, vilket stärker träffsäkerheten för filtermodulerna.
    • Nya multimap selectors gör att administratörer kan bygga mer avancerade filterregler på ett sätt som påminner om SpamAssassin.

    Förbättringar för driftsäkerhet och prestanda
    Stabilitet och hastighet är avgörande i mejlflöden som hanterar miljontals meddelanden per dag. Version 3.13 levererar flera förbättringar här:

    • Smidigare hantering av HTTP-timeouts.
    • Probe mode för upstream-servrar, vilket minskar risken för onödiga omstarter.
    • Bättre DNS-hantering via getaddrinfo.
    • Standardisering på C++20, med förbättrat stöd för ARM-miljöer.

    Nyheter i WebUI
    Rspamds webbaserade gränssnitt har också fått en uppfräschning med Bootstrap-tema, möjligheten att hantera Bayes-klasser direkt i webben samt nya end-to-end-testflöden för scanning.

    Fixar och optimeringar
    Utöver nyheterna innehåller version 3.13 en rad förbättringar och buggfixar:

    • DCC-pluginet har skrivits om för bättre prestanda.
    • Förbättrad DKIM-hantering vid verifiering av mejl.
    • Många små optimeringar och stabilitetsfixar i koden.

    Slutsats
    Med version 3.13 tar Rspamd ett stort kliv framåt. Den klassiska tvådelade spam/ham-världen ersätts av en mer realistisk modell där olika typer av mejl kan klassificeras separat. Samtidigt stärks stödet för AI-drivna analyser och integration med moderna språkmodeller.

    För organisationer som vill ha bättre kontroll över sin e-post, högre precision i spamfiltret och långsiktigt stöd för AI-lösningar är detta en uppdatering som gör Rspamd ännu mer framtidssäkert.

    https://docs.rspamd.com/downloads

    Rspamd 3.13 — Fakta & nyheter

    Öppet källkods-spamfilter för mejlservrar, gateways och säkerhetsappliances.
    Typ
    Spamfilter/antispam-ramverk
    Licens
    Öppen källkod
    Huvudnyhet
    Multiclass Bayes (2–20 namngivna klasser) i ett enda Redis-anrop/meddelande
    Kompatibilitet
    Bakåtkompatibel med is_spam; stöd för autolearn och etiketterade klasser
    Plattform
    Standardiserad på C++20; förbättrat ARM-stöd; moderniserad build/CI

    Multiclass Bayes

    • 2–20 klasser (t.ex. spam, nyhetsbrev, transaktionella), en Redis-runda per meddelande.
    • Lua/CLI stöd: rspamc learn_class:<klass> (t.ex. transactional, newsletter).
    • Lua-API: task:get_multiclass_result() ger klass-sannolikheter och confidence.

    Neural modul & LLM

    • Provider-baserad arkitektur (symboler, LLM-embeddings), versionerad och bakåtkompatibel.
    • Pluggbar feature fusion med tränad normalisering: unit/zscore/none (träning + inferens).
    • Redis-backad cache för LLM-embeddings → lägre kostnad och latens.
    • Förbättrad prompt/parameter-hantering; initialt stöd för GPT-5 och andra modeller.

    Parser & regelmotor

    • MIME-parser: automatisk part-typdetektion.
    • HTML-parser: fler features för nedströmsmoduler.
    • Multimap selectors: SA-stil med dedikerat selector-fält; integrerat med Hyperscan och regex-cache.

    Prestanda & driftsäkerhet

    • Förbättrad konfiguration/hantering av HTTP-timeouts.
    • Upstream “probe mode” → färre tvingade revive.
    • DNS-upplösning via getaddrinfo.
    • Kontinuerliga städningar och RPM-tweaks.

    WebUI

    • Bootstrap-uppgradering; fräschare UI.
    • Bayes-klasshantering direkt i webben.
    • E2E-flöden för skannertester.

    Fixar

    • DCC-plugin omskriven och optimerad.
    • Förbättrad DKIM “relaxed” body-kanonisering.
    • Stabilitetsförbättringar i multimap, WebUI och konfiguration; många små bugfixar.

    Rspamd används för att analysera och poängsätta e-post i realtid med modulär arkitektur, Lua-scriptning, Redis-integration och höghastighetsmönstermatchning (Hyperscan).

Etikett: C++20

  • GCC 16.1 är här – och C++ tar ett stort kliv in i 2020-talet

    GCC 16.1 är här och markerar början på en ny fas för GNU Compiler Collection. Med C++20 som nytt standardläge, experimentellt stöd för kommande C++26-funktioner och förbättringar för både diagnostik, optimering och modern hårdvara är detta en release som kan få stor betydelse för utvecklare. Samtidigt kan äldre kodbaser behöva ses över när kompilatorn tar…

  • Rspamd 3.13: Ny era för smartare spamfilter med multiclass Bayes och AI-stöd

    Tre månader efter förra versionen lanseras nu Rspamd 3.13 – en uppdatering som förvandlar spamfiltret till ett ännu smartare verktyg. Med stöd för multiclass Bayes, AI-drivna analyser och förbättrat webgränssnitt tar systemet ett stort steg mot framtidens e-posthantering. I en tid då e-postflöden översvämmas av skräppost, nätfiske och automatiserade meddelanden blir intelligenta filter allt viktigare.…