Ruby 4.0 markerar ett av de största kliven i språkets historia, där fokus ligger på isolering, parallellism och prestanda utan att kompromissa med Rubys välkända läsbarhet. Med ny teknik som Ruby Box, en helt ny JIT-kompilator och ett kraftigt förbättrat stöd för parallell exekvering visar Ruby att språket är redo att möta moderna krav – samtidigt som det fortsätter att sätta utvecklarens upplevelse i centrum.

När Ruby 4.0 nu har släppts markerar det mer än bara ännu en versionssiffra. Det är ett tydligt tecken på att ett av världens mest omtyckta programmeringsspråk fortsätter att utvecklas – både tekniskt och filosofiskt – i en tid där krav på prestanda, parallellism och säkerhet är högre än någonsin. Ruby har länge varit känt för sin läsbarhet och sin glädjeprincip: programmering ska vara roligt. Med Ruby 4.0 försöker utvecklarna bevisa att man inte längre behöver välja mellan elegans och råstyrka.
Ruby Box – isolering utan containrar
Den kanske mest nyskapande nyheten är Ruby Box, en experimentell teknik för isolering inuti samma Ruby-process. Genom att starta Ruby med miljövariabeln RUBY_BOX=1 kan man skapa separata ”lådor” där klasser, moduler, globala variabler, monkey patches och till och med inlästa bibliotek hålls helt åtskilda. Det gör det möjligt att köra testfall som använder aggressiva monkey patches utan att påverka andra tester, köra flera versioner av samma webbapplikation parallellt vid blue-green-driftsättning eller testa nya beroenden i realtid genom att jämföra beteende och svar. Allt detta sker utan containrar eller separata processer – isoleringen sker direkt i Ruby-motorn.
ZJIT – nästa generations prestandasatsning
Ruby 4.0 introducerar också ZJIT, en ny experimentell just-in-time-kompilator som är tänkt att på sikt ersätta YJIT. ZJIT är skriven i Rust och använder större kompileringsenheter samt en modern SSA-baserad mellanrepresentation. Resultatet är redan nu snabbare än den traditionella tolken, även om den fortfarande ligger efter YJIT. Utvecklarna är tydliga med att ZJIT ännu inte är redo för produktion, men ambitionen är att den ska vara både snabbare än YJIT och stabil nog för skarp drift i Ruby 4.1. För den nyfikne kan ZJIT aktiveras med flaggan –zjit.
Ractor tar ett steg mot mognad
Parallell programmering har länge varit en svag punkt i Ruby, men Ractor-modellen fortsätter att utvecklas. I Ruby 4.0 introduceras klassen Ractor::Port, som ersätter tidigare mer svårbegripliga API:er som Ractor.yield och Ractor#take. Kommunikation mellan parallella delar av ett program blir tydligare och mer robust. Samtidigt har interna datastrukturer förbättrats för att minska låsning kring globala resurser, minska delad intern data och förbättra CPU-cache-beteende. Tillsammans ger detta märkbart bättre parallell prestanda, och målet är att Ractor snart ska lämna sin experimentella status helt.
Små språkliga förändringar med stor effekt
Ruby 4.0 innehåller också flera språkliga justeringar som gör vardagen trevligare för utvecklare. Logiska operatorer som && och || kan nu stå i början av en rad och fortsätta föregående uttryck, vilket gör flerradiga villkor mer lättlästa. Beteendet för *nil har gjorts mer konsekvent och anropar inte längre nil.to_a, i linje med hur **nil redan fungerar. Felmeddelanden vid fel antal argument är tydligare och innehåller både bättre bakspårning och kodutdrag. Unicode-stödet har uppdaterats till version 17.0, inklusive nya emoji.
Ett snabbare och renare Ruby under huven
Bakom kulisserna har Ruby 4.0 fått omfattande prestandaförbättringar. Objekt skapas snabbare, särskilt när nyckelordsargument används. Garbage collectorn arbetar effektivare, intern åtkomst till instansvariabler har optimerats och många gamla låsningar i heta kodvägar har tagits bort. Standardbiblioteket har samtidigt städats upp: vissa komponenter har flyttats eller uppdaterats, andra – som delar av CGI-biblioteket – levereras inte längre fullt ut som standard.
Framåtblick
Ruby 4.0 är inte bara en inkrementell uppdatering utan ett tydligt ställningstagande. Språket vill fortsätta vara uttrycksfullt och lättläst, men samtidigt möta moderna krav på prestanda, parallellism och isolering. Med Ruby Box, ZJIT och ett allt mer moget Ractor-system visar Ruby att det går att förnya sig utan att förlora sin identitet. För utvecklare innebär det en tydlig signal: Ruby är långt ifrån färdigt – det har precis växlat upp.
Nyheterna i OpenBSD 7.5

OpenBSD 7.5 har nu officiellt släppts, och fortsätter att erbjuda ett säkert och fritt UNIX-baserat operativsystem som betonar säkerhet, mångsidighet och korrekthet.
Från början en avknoppning från NetBSD, har OpenBSD vuxit till att bli ett betydelsefullt operativsystem med fokus på en säker databehandlingsmiljö.
Här är några av de mest betydelsefulla uppdateringarna i OpenBSD 7.5:
Den nya versionen introducerar möjligheten att kryptera rotpartitionen under installationsprocessen, vilket förstärker skyddet av känslig data. Pinsyscalls, ett nytt systemanrop, tillåter mer detaljerad kontroll över systemanrop, vilket bidrar till ökad systemintegritet och minskade säkerhetsrisker.
För att ytterligare säkra systemet har stödet för indirekta systemanrop via funktionen syscall tagits bort. Denna åtgärd, tillsammans med pinsyscalls, förbättrar säkerheten genom att begränsa tillgången till systemanrop och förhindra potentiella attacker.
På hårdvarusidan, specifikt för ARM64-system, inkluderar nu OpenBSD stöd för pekareautentisering (PAC) och identifiering av målbranch (BTI), vilket skyddar mot attacker som korrumperar minnet. Stödet för IPv6 på ppp-nätverksgränssnitt utökas också, vilket förbättrar anslutningsmöjligheter och kompatibilitet.
OpenBSD 7.5 har också förbättrat paketfiltreringen i pf-brandväggen, vilket ger bättre prestanda på flerkärniga system och ökad insyn i nätverkstrafiken. Netstat-verktyget har uppdaterats för att visa mer detaljerad statistik om effektiviteten i ruttcache, vilket ger användarna värdefulla insikter för att optimera nätverksprestanda och säkerhetsinställningar.
Virtualiseringsstacken i VMM-hypervisorn har uppgraderats med flertrådstöd och förbättrad stabilitet på Intel VMX-baserade system, vilket förbättrar både tillförlitligheten och prestandan i virtualiserade miljöer.
Vidare har OpenBSD 7.5 utökat sitt stöd för hårdvara och introducerat nya drivrutiner, vilket säkerställer bättre kompatibilitet med ett brett urval av enheter, från Apples bildkontroller till Qualcomms trådlösa chips.
Användarna kan nu njuta av en uppdaterad skrivbordsmiljö med KDE Plasma 5.27, som erbjuder förbättrad användarupplevelse och de senaste funktionerna från KDE:s ekosystem.
Slutligen har viktiga programvarukomponenter som LibreSSL och OpenSSH fått uppdateringar för att garantera de senaste säkerhetsförbättringarna och prestandaoptimeringarna. Det omfattande biblioteket av tredjepartsapplikationer har också uppdaterats, vilket ger tillgång till de senaste versionerna av populära programvarupaket.
Här är en kort sammanfattning av några viktiga uppdaterade program och paket i denna version:
- Asterisk, Audacity, CMake, Chromium, FFmpeg, Firefox
- GCC, GHC, GNOME, Go, JDK, Krita
- LLVM/Clang, LibreOffice, Lua, MariaDB, Mono
- Mutt, NeoMutt, Node.js, OCaml, OpenLDAP
- PHP, PostgreSQL, Python, Qt, R, Ruby
- Rust, SQLite, Shotcut, Sudo, Suricata
- Tcl/Tk, TeX Live, Thunderbird, Vim, Neovim, Xfce
https://www.openbsd.org/faq/faq4.html#Download
OpenBSD sidan i vår Wiki
https://wiki.linux.se/index.php/OpenBSD
Översikt: OpenBSD är ett UNIX-liknande, fritt och öppet operativsystem som utvecklas av ett globalt volontärteam. Fokus ligger på säkerhet, korrekthet och enkelhet. Vanligt i servrar och säkerhetskritiska miljöer.
Säkerhetsnyheter i 7.5:
- Krypterad rotpartition direkt i installationen för starkare dataskydd.
- pinsyscalls: finmaskig kontroll av systemanrop.
- Borttaget stöd för indirekta systemanrop via
syscall()för att minska angreppsytan.
Arkitektur & nätverk:
- ARM64: stöd för PAC (Pointer Authentication) och BTI (Branch Target Identification) mot minneskorruptionsattacker.
- IPv6 på ppp-gränssnitt utökat för bättre uppkoppling.
- pf-brandväggen: förbättrad paketfiltrering för flerkärniga system.
- netstat: mer detaljerad statistik för ruttcache/effektivitet.
Virtualisering:
- VMM-hypervisorn: flertrådstöd och stabilitetsförbättringar på Intel VMX-baserade system.
Hårdvarustöd: utökade drivrutiner och bättre kompatibilitet (bl.a. Apple-displaykontroller, Qualcomm-Wi-Fi m.m.).
Skrivbord & användarmiljö: KDE Plasma 5.27 tillgängligt för uppdaterad arbetsmiljö.
Kärnkomponenter uppdaterade: LibreSSL, OpenSSH – senaste säkerhetsfixar och prestandaförbättringar.
Större paketuppdateringar (urval): Firefox, Chromium, FFmpeg, GCC/Clang/LLVM, Go, JDK, Python, PHP, PostgreSQL, MariaDB, SQLite, Rust, Qt, GNOME, KDE, Xfce, Audacity, Krita, LibreOffice, TeX Live, Thunderbird, Vim/Neovim, Suricata, Node.js, OCaml, Mono, Asterisk, CMake, Mutt/NeoMutt, OpenLDAP, Shotcut, Sudo m.fl.
Tips: Basuppdateringar via syspatch, paket via pkg_add -u.


