• Fish Shell 4.3 – när kommandoraden blir smartare, snyggare och mer förutsägbar

    Fish Shell 4.3 är en uppdatering som vid första anblick kan verka försiktig, men som i praktiken förändrar hur skalet upplevs i det dagliga arbetet. Istället för stora, uppseendeväckande nyheter har utvecklarna fokuserat på att göra befintliga funktioner tydligare, smartare och mer konsekventa. Resultatet är ett kommandoskal som känns mer förutsägbart, lättare att konfigurera och bättre anpassat till moderna terminaler. För både vana användare och nyfikna nybörjare markerar version 4.3 ett steg mot en mer genomtänkt och harmonisk terminalupplevelse.

    Kommandoraden är för många ett arbetsredskap snarare än ett användargränssnitt. Ändå är det just där som Fish Shell, Friendly Interactive SHell, skiljer sig från mängden. Med version 4.3 tar Fish ännu ett steg mot att göra terminalen både mer begriplig och mer intelligent, utan att tumma på kraften under huven.
    Den här versionen är inte en dramatisk omvälvning, utan snarare en noggrant avvägd evolution: bättre standardbeteenden, renare konfigurationer och en terminalupplevelse som anpassar sig efter användaren, inte tvärtom.

    Mindre magi, mer kontroll: nya konfigurationsprinciper

    En av de största förändringarna märks först knappt alls. Tidigare använde Fish så kallade universella variabler för färger, teman och tangentbindningar. De var praktiska men också svåröverskådliga.
    I Fish 4.3 ändras detta i grunden. Standardvariabler som fish_color_* och fish_key_bindings sätts nu globalt i stället för universellt. Vid första starten efter uppgradering gör Fish en engångsmigrering som fryser ditt nuvarande tema och dina tangentbindningar till filer i ~/.config/fish/conf.d/.
    Utvecklarna rekommenderar därefter att man tar bort dessa automatiskt skapade filer och istället hanterar allt direkt i config.fish. Resultatet blir en mer förutsägbar, lättläst och versionshanterbar konfiguration. Det går fortfarande att använda universella variabler, men då medvetet och med vetskapen om att de inte lämpar sig lika väl för dynamiska teman.

    Ett nytt språk – bokstavligen

    Fish 4.3 introducerar ett nytt kommando i skriptspråket: status language. Det kan låta trivialt, men det löser ett gammalt problem. Nu kan man se vilket språk Fish använder för sina meddelanden och ändra språket utan att behöva manipulera globala miljövariabler. Detta är särskilt användbart i skript, testmiljöer och dokumentation där man vill ha konsekventa och reproducerbara utdata.

    Smartare kompletteringar – även bakom kulisserna

    Fish är känt för sina intelligenta kompletteringar, och här har version 4.3 förfinat detaljerna. commandline –cursor fungerar nu korrekt även i icke-interaktiva sessioner. Kompletteringar hanterar sökvägar som innehåller = eller : betydligt bättre. Skiftlägesokänslig prefixmatchning gör att fler träffar hittas snabbare, och autosuggestioner kan nu radbrytas mjukt i stället för att kapas abrupt.
    För användare på Cygwin och MSYS har Fish dessutom blivit bättre på att matcha körbara filer mot rätt metadata, vilket ger mer konsekvent beteende över plattformar.

    Redigering med filsystemsförståelse

    Även tangentbordsarbetet har förbättrats. Ctrl-W tar nu bort escaped spaces när man raderar delar av en sökväg. Nya sökvägsmedvetna redigeringsfunktioner gör det enklare att navigera och justera långa filstigar direkt på kommandoraden. Det är små förbättringar som snabbt blir oumbärliga för den som arbetar mycket i terminalen.

    Teman som anpassar sig efter ljus och mörker

    En modern terminal växlar ofta mellan ljus och mörk bakgrund. Fish 4.3 möter detta genom att låta teman definiera separata sektioner för ljusa och mörka färgscheman. Flera av Fish standardteman har redan uppdaterats för detta. Resultatet är ett skal som ser rätt ut oavsett om du arbetar mitt i natten eller i fullt dagsljus.

    Djupare terminalintegration – utan att vara i vägen

    Fish fortsätter att förbättra sin integration med avancerade terminalfunktioner. OSC-signalerna för promptgränser är nu mer konsekventa, den aktuella arbetskatalogen rapporteras korrekt och fokusrapportering är aktiverad som standard. En ny funktionsflagga gör det dessutom möjligt att stänga av terminalsärlösningar när de inte behövs, vilket ger bättre kontroll i specialmiljöer.

    Stabilitet och puts: färre krascher, färre överraskningar

    Slutligen adresserar Fish 4.3 en rad regressionsproblem från tidigare versioner. Det gäller bland annat krascher kopplade till färgvariabler, problem med Unicode-autosuggestioner, emoji-bredd på macOS, kantfall vid flerradig inmatning och kompletteringsproblem på system utan glibc. Inget av detta är spektakulärt, men allt bidrar till ett skal som helt enkelt känns mer pålitligt.

    Sammanfattning

    Fish Shell 4.3 är ett tydligt exempel på mogen programutveckling. Fokus ligger inte på uppseendeväckande nyheter utan på tydligare konfiguration, bättre standardbeteenden, modern terminalanpassning och många små förbättringar som gör stor skillnad i vardagen. För den som lever i terminalen är detta en uppdatering som inte ropar, men som stillsamt visar att det bara fungerar.

    https://fishshell.com

    Faktaruta: Fish Shell 4.3

    Version: 4.3
    Typ: Interaktivt Unix-skal
    Mål: Förbättrad användarvänlighet utan att offra kraft

    Viktiga nyheter:
    – Standardvariabler för teman och tangentbindningar är nu globala istället för universella
    – Engångsmigrering fryser befintligt tema till conf.d-filer vid uppgradering
    – Nya kommandot status language styr språk för Fish-meddelanden
    – Förbättrade och mer träffsäkra kompletteringar, även i icke-interaktiva lägen
    – Teman kan reagera dynamiskt på ljusa och mörka terminaler
    – Fördjupad terminalintegration med tydligare promptgränser och fokusrapportering

    Plattformar: Linux, macOS, *BSD, Cygwin/MSYS
    Licens: GPLv2
    Webbplats: https://fishshell.com
  • Ruby 4.0 – ett stort steg framåt för ett klassiskt språk

    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.

    https://www.ruby-lang.org/en

    Fakta: Ruby 4.0
    Ny isolering: Ruby Box (experimentellt) isolerar klasser, moduler, globala variabler, monkey patches och även inlästa bibliotek per “box”. Aktiveras med RUBY_BOX=1.
    Ny JIT: ZJIT (experimentellt) efterföljare till YJIT – metodbaserad JIT med större kompileringsenheter och SSA-baserad IR. Byggkrav: Rust 1.85+. Aktiveras med –zjit.
    Parallellism: Ny Ractor::Port för tydligare kommunikation mellan Ractors. Äldre API:er som Ractor.yield och Ractor#take är borttagna.
    Språknytt: Logiska operatorer i början av rad (&&, ||, and, or) fortsätter föregående rad. *nil beter sig nu konsekvent och anropar inte längre nil.to_a.
    Standardbibliotek & core: Set och Pathname är core-klasser, och Unicode är uppdaterat till 17.0 (inkl. Emoji 17.0).
    Kompatibilitet: Flera deprecated API:er är borttagna (bl.a. äldre Ractor-metoder). Windows-bygg kräver Visual Studio 2015+.


  • Fresh – när terminaln möter det moderna kodverktyget

    Terminaln har länge varit utvecklarens snabbaste verktyg – men också ett av de mest avskalade. Med Fresh utmanas den bilden. Den nya öppna textredigeraren kombinerar terminalns effektivitet med moderna funktioner som annars hör hemma i grafiska IDE:er. Resultatet är ett kraftfullt kodverktyg som körs helt i textläge, men ändå erbjuder en strukturerad, visuell och förvånansvärt bekväm utvecklingsmiljö.

    Fresh – när terminaln möter det moderna kodverktyget

    I takt med att allt fler utvecklare söker snabbare, lättare och mer fokuserade arbetsflöden har intresset för terminalbaserade verktyg fått en tydlig renässans. Samtidigt vill få ge upp de bekvämligheter som moderna utvecklingsmiljöer erbjuder. Här kliver Fresh in – en ny öppen källkodsbaserad textredigerare som försöker förena två världar som länge setts som motsatser: den klassiska terminaln och den grafiska kodeditorn.

    Fresh är en så kallad TUI-editor (Text-based User Interface), skriven i programmeringsspråket Rust. Det innebär att hela programmet körs i ett vanligt terminalfönster, utan att använda grafiska ramverk som GTK eller Qt. Trots detta lyckas Fresh leverera en upplevelse som ligger mycket nära den man förknippar med moderna grafiska program.

    Ett grafiskt tänk – helt i textläge

    Vid första anblick kan Fresh nästan uppfattas som en traditionell grafisk editor. Den innehåller menyer, paneler, delade vyer, filutforskare och en integrerad terminal, allt uppbyggt med terminalns egna möjligheter. Musstöd finns från start, tillsammans med snabbkommandon, kontextmenyer och en kommandopalett där användaren kan söka efter funktioner på samma sätt som i moderna IDE:er.

    I stället för att arbeta direkt med filer använder Fresh buffertar. Flera filer och terminalsessioner kan vara öppna samtidigt och visas sida vid sida i horisontella eller vertikala split-vyer. En permanent statusrad längst ner visar relevant information som filnamn, markörposition och aktuell Git-branch.

    Kraftfull redigering utan begränsningar

    Trots sitt terminalbaserade format saknar Fresh inte avancerade redigeringsfunktioner. Programmet erbjuder stöd för flera markörer, avancerade textmarkeringar samt obegränsad ångra- och gör om-funktionalitet. All redigering sparas i en fullständig historik, vilket gör att användaren tryggt kan experimentera utan risk att förlora arbete.

    Navigeringen förbättras ytterligare genom positionshistorik och inbyggt stöd för Language Server Protocol. Detta gör det möjligt att hoppa till definitioner, navigera mellan symboler och få kodintelligens som annars förknippas med fullskaliga grafiska utvecklingsmiljöer.

    Filhantering utan att lämna editorn

    Fresh innehåller en inbyggd filutforskare som låter användaren navigera i projektets katalogstruktur direkt i editorn. Den är helt anpassad för tangentbord, men fungerar även med mus. Som standard respekteras .gitignore-filer, vilket hjälper till att hålla fokus på relevanta filer i projektet. Filer kan öppnas, bytas och skapas utan att man behöver lämna editorn eller använda externa verktyg.

    Terminaln som en integrerad del av arbetsflödet

    En av de mest utmärkande funktionerna i Fresh är den inbyggda terminalemulatorn. Terminaler öppnas som vanliga buffertar och kan delas upp i flera flikar. Användaren kan växla mellan inmatningsläge och scroll-läge, söka i terminalutdata och kopiera text med samma kommandon som används i redigeraren.

    En särskilt ovanlig funktion är att terminalsessioner kan bevaras mellan omstarter. Pågående processer och hela scrollback-historiken finns kvar, vilket suddar ut gränsen mellan editor och kommandoskal.

    Kodintelligens med resurskontroll

    Fresh har inbyggt stöd för Language Server Protocol och erbjuder diagnostik, kodkomplettering och symbolinformation i realtid. Rust, JavaScript, TypeScript och Python fungerar direkt, medan ytterligare språk kan konfigureras manuellt via en JSON-baserad inställningsfil.

    En detalj som särskiljer Fresh från många andra editorer är möjligheten att sätta gränser för CPU- och minnesanvändning hos språkservrar. Detta förhindrar att resurskrävande LSP-processer påverkar systemets prestanda negativt.

    Ett pluginsystem byggt för framtiden

    Fresh är konstruerat med utbyggbarhet i fokus. Redigeraren använder ett pluginsystem baserat på TypeScript, vilket gör det relativt lätt att skapa egna tillägg. Flera plugins följer med som standard, bland annat för att markera TODO-kommentarer och utföra Git-baserade sökningar.

    För C- och C++-utveckling finns även ett särskilt Clangd-hjälpplugin. Plattformsspecifika detaljer, till exempel för macOS, är tydligt dokumenterade för att underlätta installation och användning.

    Samlad och tydlig konfiguration

    All konfiguration i Fresh sker via en enda config.json-fil som lagras på ett standardiserat sätt beroende på operativsystem. I denna fil styrs allt från teman och tangentbindningar till språkservrar, plugins och resursbegränsningar. Tanken är att ge användaren full kontroll utan att sprida inställningar över flera filer.

    Stöd för alla större operativsystem

    Fresh är officiellt stödd på Linux, macOS och Windows. För den som vill prova finns färdiga binärer, men även installationsalternativ via Homebrew, Arch User Repository, .deb- och .rpm-paket, npm, crates.io eller manuell kompilering från källkod. På Windows fungerar Fresh i moderna terminaler, och det går även att köra via WSL för en mer Linux-lik upplevelse.

    Terminalns nästa steg

    Fresh visar tydligt att terminalbaserade verktyg inte längre behöver vara spartanska eller svåranvända. Genom att kombinera hög prestanda, moderna gränssnittsidéer och ett tydligt fokus på utvecklarens arbetsflöde pekar Fresh mot en framtid där terminaln inte är ett alternativ till grafiska verktyg – utan ett fullvärdigt hem för dem.

    Bild ifrån projektets hemsida

    Linux.se:s åsikt

    Efter att ha testat Fresh är helhetsintrycket mycket lovande, även om den senaste versionen ännu inte verkar finnas tillgänglig som .deb-paket. Känslan för tankarna tillbaka till DOS-eran, fast i en modern tappning.

    För den som i dag snabbt vill redigera filer direkt på en server är alternativen oftast nano eller emacs/vi. Både emacs och vi är kraftfulla verktyg, men de har också en relativt hög inlärningströskel, vilket kan avskräcka många användare.

    En funktion som skulle vara mycket uppskattad i framtida versioner av Fresh är stöd för emacs-liknande Ctrl-kommandon. För användare som har dessa tangentkombinationer djupt inpräntade i muskelminnet är det svårt att ”lära gamla hundar att sitta”. Dessutom kan Ctrl-kommandon i vissa situationer vara snabbare och mer effektiva, exempelvis vid sparande och navigering.

    Trots detta framstår Fresh som ett tydligt positivt tillskott. Det fyller ett tomrum mellan enkla terminalredigerare och mer komplexa redigeringsmiljöer, och har potential att bli ett naturligt val för modern server- och terminalbaserad utveckling.

    Läs mer på :

    https://sinelaw.github.io/fresh

    FAKTARUTA
    Fresh – terminaleditor med IDE-känsla
    • Typ: Öppen källkod, TUI (Text-based UI) i terminal
    • Språk: Rust
    • Gränssnitt: Paneler, split-vyer, filutforskare, musstöd
    • Utvecklarstöd: LSP (diagnostik, completion, symboler)
    • Extra: Inbyggd terminal som buffert med flikar och scroll-läge
    • Utbyggbart: Pluginsystem (TypeScript) och central config.json
    • Plattformar: Linux, macOS, Windows (även via WSL)
    Tips: Passar dig som vill stanna i terminaln men ändå ha moderna IDE-funktioner.
  • ”Jag ville bara lösa ett problem” – Linus Torvalds om Linux, Git och livet som envis ingenjör

    Han sitter ensam i ett ljuddämpat hemmakontor med ljusgröna väggar, en katt i knät och ett gåband han slutat använda – ändå är det härifrån en av världens viktigaste tekniska revolutioner har styrts. Utan storslagna visioner eller femårsplaner har den envisa ingenjören Linus Torvalds, skaparen av Linux och Git, förändrat hur internet fungerar, hur vi skriver kod – och hur miljarder människor använder teknik varje dag.

    Video är snart 10 år gamla, men ändå intressant för den som vill fördjupa sej i LInux.

    Tänk dig teknikens mäktigaste kontrollrum. Du föreställer dig kanske en futuristisk bunker full av blinkande skärmar, serverracks och avancerad utrustning.

    När TED-curatorn Chris Anderson visade bilden av Linus Torvalds arbetsplats brast publiken ut i skratt.

    På scenen: ett helt vanligt rum. Ett skrivbord, en suddigt synlig dator, beige väggar i en ljusgrön färg som enligt Torvalds ofta används på mentalsjukhus. Under skrivbordet tronar ett gåband.

    ”Det är det mest intressanta i mitt kontor,” säger han, ”och jag använder det inte ens längre.”

    Den mannen – som sitter i morgonrock och jobbar i tystnad – styr utvecklingen av ett operativsystem som driver allt från superdatorer till Android-telefoner och internetservrar. En och en halv miljard aktiva Android-enheter, enligt Torvalds själv.

    Hur hamnade vi här? Hur blev en ensam ingenjör i tystnaden arkitekten bakom någonting som förändrade allt?

    I början var det bara ett sidoprojekt

    När Torvalds 1991 som 21-årig student i Helsingfors började skriva Linux-kärnan, var det inte för att leda ett globalt rörelse – utan för att ha roligt.

    ”Jag startade inte Linux som ett samarbetsprojekt. Det var ett av många projekt jag gjorde åt mig själv. Jag behövde resultatet – och jag älskade att programmera.”

    Han hade ingen plan, ingen vision, inget kommersiellt mål. Han delade det efter ett halvår, mest med orden: ”Kolla vad jag byggt! Kommentera gärna.”

    Det var inte ens ”öppen källkod” i modern bemärkelse.

    Men han fick svar.

    Folk började testa. Komma med idéer. Sen kod.

    ”Innan någon ens skickade kod hade jag mitt ’wow’-ögonblick: folk tittar på min kod – och ger mig idéer!”

    Samma man som erkänner att han ”egentligen inte tycker om andra människor” beskriver det här som något av det största han varit med om.

    Envisheten – mer än intelligensen – var nyckeln

    När Chris Anderson frågar om Torvalds var ”barn-geniet, skolans stjärna eller mega-nörden”, tvekar han inte.

    ”Jag var typisk nörd. Jag var mer intresserad av Rubiks kub än av min bror.”

    Hans syster brukade förbereda honom på familjeträffar: ”Okej, den där heter så, den där jobbar med det…” för att underlätta det sociala samspelet.

    Inte exceptionellt smart, enligt honom själv. Men något annat utmärkte honom:

    ”Jag kan inte släppa saker.”

    Han stannar kvar. I ett problem. I ett projekt. I ett mönster.

    Och det är exakt därför Linux fungerar.

    Kodens skönhet: när specialfall försvinner

    Torvalds visar i intervjun två varianter på en enkel datastruktur – en länkad lista. Den ena har en if-sats i slutet. Den andra saknar den.

    Funktionen är densamma. Skillnaden? Den ena kräver ett specialfall. Den andra behandlar alla fall lika.

    ”God smak handlar om att se mönstret och skriva om det så specialfallen försvinner och blir normalfallet.”

    Det här är populärvetenskapens kärna: den eleganta förenklingen. Någon som ser det andra inte ser – men inte för att de är visionära. Utan för att de vägrar ge sig tills det sitter perfekt.

    Git – skapat för att han inte ville hantera tusentals människor

    När Linux växte till tusentals utvecklare behövdes versionshantering. Existerande verktyg räckte inte.

    ”Jag hatade CVS av hela mitt hjärta.”

    Han kunde inte effektivt skala sin arbetsmetod till tusentals bidragsgivare.

    Så han byggde Git.

    ”Git är mitt andra stora projekt – skapat åt mig för att hantera mitt första.”

    Idag är Git standardsystemet för nästan all mjukvaruutveckling globalt.

    ”Jag är ingen visionär. Jag är ingenjör.”

    Torvalds erkänner att han känner sig obekväm på TED.

    ”Här pratar alla om visioner. Jag har ingen femårsplan. Jag tittar på marken och fixar hålet i vägen innan jag ramlar ner i det.”

    Världen behöver drömmare, säger han – men han hör inte till dem. Han är mer som Edison än Tesla.

    Edison beskylldes ofta för att vara tråkig. Tesla var idésprutan. Men vem förändrade världen mest?

    ”Jag tror jag är mer som Edison. Geni är en procent inspiration och 99 procent hårt arbete.”

    Öppen källkod – varför det fungerar i tekniken (men kanske inte i politiken)

    Torvalds tror öppen källkod fungerade så bra för mjukvara eftersom kod är binär:

    ”Kod fungerar – eller fungerar inte. Det ger mindre utrymme för dispyter.”

    Han är skeptisk till öppna system i politik, där verkligheten sällan är svartvit. Däremot ser han en återkomst av öppenhet inom forskning – via öppna databaser, arXiv och Wikipedia.

    ”Blir du arg när Google tjänar miljarder på Linux?”

    Det korta svaret: Nej.

    ”Utan att släppa taget hade Linux aldrig blivit vad det är. Och jag klarar mig bra.”

    Han har offrat viss anonymitet och tvingats hålla föredrag (trots att han ogillar det). Men han ångrar inte sitt beslut.

    Så vad lär vi oss av Linus Torvalds?

    Att du inte måste vilja förändra världen för att göra det.

    Ibland räcker det att:

    • älska det du gör,
    • vara envis nog att aldrig släppa taget,
    • se elegans där andra ser komplexitet,
    • och inte distraheras av visioner när det finns ett hål framför fötterna.

    Torvalds sitter fortfarande i sin tystnad. Ibland med en katt i knät. Hörandes spinnandet, inte fläktarna.


    ”Jag tittar inte på stjärnorna.
    Jag lagar hålet i vägen framför mig.”

    Och genom att göra just det – med extrem envishet, teknisk klarhet och nästan total ignorans för vad världen tycker – blev Linus Torvalds en av de mest inflytelserika människorna i den digitala tidsåldern.

    Publicerad i teknik & vetenskap — baserad på TED-intervju med Linus Torvalds

    Fakta: Linus Torvalds – ingenjören som förändrade världen

    • Namn: Linus Benedict Torvalds
    • Född: 28 december 1969, Helsingfors, Finland
    • Känd för: Skapare av Linux-kärnan (1991) och Git (2005)
    • Linux i världen: Driver majoriteten av världens servrar, superdatorer, molnplattformar och alla Android-enheter.
    • Git i världen: Standardverktyget för versionshantering av kod – används av utvecklare och företag globalt.
    • Påverkan: Har möjliggjort öppen källkod i industriell skala och förändrat hur mjukvara utvecklas, delas och förbättras.
    • Roll: Tekniskt ledarskap snarare än chefskap – känd för fokus på kodkvalitet, enkelhet och ”god smak” i design.
    • Filosofi: Ser sig inte som visionär, utan som ingenjör som löser konkreta problem steg för steg – ”fixar hålet i vägen framför sig”.
  • Ny dokumentärfilm berättar historien om Python

    Ny dokumentärfilm berättar historien om Python

    Programmeringsspråket Python har fått sin egen film. Dokumentären “Python: The Documentary” är 90 minuter lång och skildrar resan från Guido van Rossums sidoprojekt i Amsterdam på 1990-talet till dagens globala dominans.

    Python är idag världens mest använda programmeringsspråk, enligt det senaste TIOBE-indexet (augusti 2025). Filmen visar hur språket, som från början var ett experiment, blivit en central del i allt från artificiell intelligens och datavetenskap till några av världens största företag.

    Bland de medverkande finns grundaren Guido van Rossum, Travis Oliphant, Barry Warsaw, Armin Ronacher, Mariatta Wijaya och flera andra profiler som haft betydelse för språkets utveckling.

    Dokumentären lyfter inte bara Python i sig, utan ger också en inblick i den bredare historien om öppen källkod – kryddad med den humor som ofta förknippas med open source-gemenskapen.

    Filmen har möjliggjorts med stöd från Anaconda, Dropbox, Meta, OpenTeams, JetBrains’ PyCharm och Quansight.

    “Python: The Documentary” finns nu tillgänglig för alla som vill ta del av berättelsen bakom världens mest inflytelserika programmeringsspråk.

  • GNU Binutils 2.45 – Stort lyft för RISC-V och nya funktioner för flera arkitekturer

    GNU-projektet har släppt version 2.45 av GNU Binutils, en samling viktiga kommandoradsverktyg för lågnivåprogrammering. Binutils används för att skapa, analysera och manipulera objektfiler (mellanformatet som kompilatorer producerar innan det blir körbara program), bibliotek och färdiga exekverbara filer.

    Tillsammans med GCC (GNU Compiler Collection – GNU:s samling av kompilatorer), glibc (GNU C Library – standardbibliotek för C-språket) och GDB (GNU Debugger – felsökningsverktyg) utgör Binutils kärnan i den öppna GNU-verktygskedjan som driver stora delar av Linux-världen.

    Den nya versionen innehåller både grundläggande förbättringar och omfattande stöd för nya processorinstruktioner i arkitekturer som RISC-V, Arm v9.6, LoongArch och x86.

    Mer pålitliga stackspårningar med SFrame

    En av de mest tekniskt betydelsefulla nyheterna är förbättringarna i SFrame, ett format för att lagra komprimerad information om funktionsanrop och returadresser.

    När ett program kraschar eller behöver analyseras kan utvecklare använda stack traces (anropsstackar) för att se exakt var i koden något gick fel. Med SFrame i version 2 blir denna information mer kompakt och samtidigt mer exakt, vilket särskilt gynnar verktyg som körs utanför själva processen (till exempel felsökningsverktyg som analyserar kärndumpar).

    I och med version 2.45:

    • GAS (GNU Assembler – översättare från assemblerkod till maskinkod) genererar nu SFrame-sektioner med SHT_GNU_SFRAME-typen och flaggan SFRAME_F_FDE_FUNC_START_PCREL som standard.
    • IBM\:s s390x-plattform (64-bitars version av stordatorarkitekturen System/390) får för första gången möjlighet att generera SFrame direkt från CFI-direktiv (Call Frame Information – metadata som beskriver hur stackramar byggs upp och återställs).

    Nya verktyg direkt i assemblerkoden

    Utvecklare får även två nya direktiv:

    • .errif – kastar ett felmeddelande vid ett visst villkor.
    • .warnif – ger en varning vid ett visst villkor.

    Villkoren utvärderas först när filen är helt assemblerad, vilket gör det möjligt att samla in mer kontext innan felmeddelandet visas. Detta är användbart i stora kodbaser eller firmwareprojekt.

    RISC-V tar flera steg framåt

    RISC-V är en öppen processorinstruktionsuppsättning (ISA – Instruction Set Architecture) som kan användas royaltyfritt av tillverkare. Den växer snabbt i betydelse, och Binutils 2.45 bygger ut stödet rejält:

    • Stöd för Privileged Specification v1.13 – den del av RISC-V-specifikationen som reglerar hur operativsystem och hårdvara kommunicerar på låg nivå.
    • Tre nya profiler (20, 22 och 23) som definierar färdiga kombinationer av instruktionstillägg.
    • Nytt direktiv .bfloat16 – hantering av 16-bitars flyttal i formatet Brain Floating Point, populärt i maskininlärning.
    • Stöd för en lång lista av standardtillägg som exempelvis:
    • sha – hårdvaruacceleration för SHA-kryptografi.
    • zce – komprimerade instruktioner för inbyggda system.
    • smrnmi – säker maskinvaruhantering av icke-maskerbara avbrott.
    • Stöd för leverantörsspecifika tillägg, bland annat från:
    • T-Head (Alibaba Groups processordivision): xtheadvdot – specialinstruktioner för vektorberäkningar.
    • MIPS: instruktioner som förbättrar minnesoperationer och kontrollflöde.

    En viktig förändring är också att $x-mappningssymboler nu ersätts med \$x för att bättre ange vilken ISA de tillhör. Detta kan kräva att viss äldre RISC-V-kod byggs om.

    Arm v9.6 – försprång till framtida CPU-funktioner

    För Arm tillkommer flaggan -march=armv9.6-a i assemblern. Den aktiverar redan nu stöd för kommande instruktioner som väntas i kommersiella processorer från slutet av 2025 och framåt.

    Några exempel:

    • +sme2p2 – nästa generation av Scalable Matrix Extension, för maskininlärning och vektorberäkningar.
    • +ssve-aes – effektivare AES-kryptering med Scalable Vector Extension (SVE).
    • +f8f32mm – snabbare matrismultiplikation med 8-bitars och 32-bitars flyttal.

    x86 och LoongArch – små men viktiga uppdateringar

    x86-sidan:

    • Stöd för Zhaoxin PadLock XMODX – en uppsättning kryptografiska instruktioner i vissa kinesiska x86-processorer.
    • Borttagning av stöd för 256-bitars varianten av AVX10.2-avrundningsinstruktioner – eftersom alla berörda CPU\:er redan stöder 512-bitarsvarianten.

    För LoongArch (en kinesisk processorarkitektur):

    • Nya alias för vissa 32-bitars instruktionsvarianter.
    • Förbättrade varningar när .align-direktiv eller matematiska uttryck riskerar att ge fel (till exempel negativa skiftningar eller division med noll).

    Slutsats

    GNU Binutils 2.45 är en ovanligt stor uppdatering – särskilt för dem som utvecklar kod nära hårdvaran. Den stärker debugmöjligheterna, inför nya verktyg i själva assemblern och ger utvecklare tillgång till nästa generations processorfunktioner redan idag.

    För RISC-V betyder det här ett bredare och mer komplett verktygsstöd, för Arm öppnar det dörren till framtida vektor- och krypteringsförbättringar, och för både x86 och LoongArch handlar det om små men värdefulla optimeringar

    https://www.gnu.org/software/binutils

    GNU Binutils 2.45 — Tekniska begrepp & förkortningar
    Binutils
    Samling lågnivåverktyg (bl.a. as, ld, objdump, readelf) för objektfiler, bibliotek och länkningssteg.
    GAS
    GNU Assembler – översätter assembler till maskinkod/ELF; i 2.45 genererar GAS SFrame V2 per default.
    ELF
    Executable and Linkable Format – standard för binärformat på Unix-lika system; sektioner, symboltabeller, relokerings-poster m.m.
    SFrame (V2)
    Kompakt stack-unwindformat för out-of-process stacktracing; lagrar återställningsregler per funktion utan full DWARF-overhead.
    SHT_GNU_SFRAME
    ELF-sektionstyp som identifierar SFrame-data; gör att verktyg kan hitta och tolka SFrame deterministiskt.
    SFRAME_F_FDE_FUNC_START_PCREL
    Header-flagga som anger att funktionsstart i FDE (Frame Description Entry) är PC-relativ – robustare symbolik/relokering.
    CFI
    Call Frame Information – metadata (ofta via .cfi_*) som beskriver stackramar; kan nu syntetiseras till SFrame på s390x.
    s390x
    64-bitars IBM Z/System z-ISA; Binutils 2.45 kan generera SFrame direkt från CFI för bättre felsökning på mainframe.
    .errif / .warnif
    GAS-direktiv som utvärderar villkor vid filslut och emitterar fel/varning; bra för policy-kontroller i firmware/SDK-träd.
    AArch64 sysregs
    Systemregister i 64-bitars Arm; 2.45 kan assemblera samtliga utan extra spärrar (-menable-sysreg-checking av).
    RISC-V ISA
    Öppen instruktionsuppsättning; 2.45 stödjer Privileged Spec v1.13, profiler 20/22/23, och ett brett spektrum av extensions.
    Privileged v1.13
    Spec för trap/CSR/virt mm. (OS-nivå); uppdaterade regler för maskin-/supervisor-lägen och delegationsvägar.
    Profiler 20/22/23
    Kuraterade paket av extension-kombinationer för definierade “capability tiers”; förenklar toolchain-målsättning.
    .bfloat16
    Assemblerliteral för Brain Float 16 (8-bit exponent, 7-bit mantissa+sign); nyttjas i ML-kernels på RVV/SME-lika enheter.
    $x → $x<isa>
    RISC-V-mappingsymbol byter semantik: explicit ISA-tagg per kodö i stället för implicit ärvning; kan kräva ombyggnad.
    Standard-ext.
    sha (SHA-accel), zce (compressed embedded), ssqosid/ssnpm/smnpm/smmpm/sspm/supm (privilege mgmt/QoS), ssccfg, svvptc (virt/ptc), zilsd/zclsd (load/store dags), smrnmi (RM-NMI) m.fl.
    Vendor-ext.
    T-Head: xtheadvdot (vektordot-ops). MIPS: xmipscbop, xmipscmov, xmipsexectl, xmipslsp (kontroll/mem-primitiver).
    Armv9.6-A
    -march=armv9.6-a aktiverar bl.a. +sme2p2 (SME v2p2), +ssve-aes (SVE-optimerad AES), +f8f16mm/+f8f32mm (FP8-matrismul), +sve2p2, m.fl. för pre-silicon-validering.
    SVE/SME
    Scalable Vector Extension / Scalable Matrix Extension – vektor- och matrisaccel med vektorlängds-agnostisk semantik.
    x86 XMODX
    Zhaoxin PadLock XMODX – nya kryptoinstruktioner. Samtidigt tas 256-bitars AVX10.2-rounding path bort (512-bit antas).
    AVX10.2
    Advanced Vector Extensions 10.2 – uniform ISA över 128–512b; 2.45 slopar en äldre 256b-avrundningskodväg.
    LoongArch
    Kinesisk RISC-ISA; 2.45 lägger till LA32R-alias (rdcntvl.w, rdcntvh.w, rdcntid.w) och striktare uttrycksdiagnostik.
    .align (3:e arg)
    Max bytes att hoppa; 2.45 varnar på out-of-range. Extra kontroller för negativa shifts och /% med noll.
    Tips: Aktivera SFrame-emission i byggkedjan och validera med readelf --sections och objdump --sframe där stöds.

    Källa :

    https://linuxiac.com/gnu-binutils-2-45-expands-risc-v-support

Etikett: programmering

  • Fish Shell 4.3 – när kommandoraden blir smartare, snyggare och mer förutsägbar

    Fish Shell 4.3 är en uppdatering som vid första anblick kan verka försiktig, men som i praktiken förändrar hur skalet upplevs i det dagliga arbetet. Istället för stora, uppseendeväckande nyheter har utvecklarna fokuserat på att göra befintliga funktioner tydligare, smartare och mer konsekventa. Resultatet är ett kommandoskal som känns mer förutsägbart, lättare att konfigurera och…

  • Ruby 4.0 – ett stort steg framåt för ett klassiskt språk

    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 –…

  • Fresh – när terminaln möter det moderna kodverktyget

    Terminaln har länge varit utvecklarens snabbaste verktyg – men också ett av de mest avskalade. Med Fresh utmanas den bilden. Den nya öppna textredigeraren kombinerar terminalns effektivitet med moderna funktioner som annars hör hemma i grafiska IDE:er. Resultatet är ett kraftfullt kodverktyg som körs helt i textläge, men ändå erbjuder en strukturerad, visuell och förvånansvärt…

  • ”Jag ville bara lösa ett problem” – Linus Torvalds om Linux, Git och livet som envis ingenjör

    Han sitter ensam i ett ljuddämpat hemmakontor med ljusgröna väggar, en katt i knät och ett gåband han slutat använda – ändå är det härifrån en av världens viktigaste tekniska revolutioner har styrts. Utan storslagna visioner eller femårsplaner har den envisa ingenjören Linus Torvalds, skaparen av Linux och Git, förändrat hur internet fungerar, hur vi…

  • Ny dokumentärfilm berättar historien om Python

    Ny dokumentärfilm berättar historien om Python Programmeringsspråket Python har fått sin egen film. Dokumentären “Python: The Documentary” är 90 minuter lång och skildrar resan från Guido van Rossums sidoprojekt i Amsterdam på 1990-talet till dagens globala dominans. Python är idag världens mest använda programmeringsspråk, enligt det senaste TIOBE-indexet (augusti 2025). Filmen visar hur språket, som…

  • GNU Binutils 2.45 – Stort lyft för RISC-V och nya funktioner för flera arkitekturer

    GNU-projektet har släppt version 2.45 av GNU Binutils, en samling viktiga kommandoradsverktyg för lågnivåprogrammering. Binutils används för att skapa, analysera och manipulera objektfiler (mellanformatet som kompilatorer producerar innan det blir körbara program), bibliotek och färdiga exekverbara filer. Tillsammans med GCC (GNU Compiler Collection – GNU:s samling av kompilatorer), glibc (GNU C Library – standardbibliotek för…