Dieser Bericht analysiert die auf Planet Lisp aggregierten Beiträge aus dem Zeitraum April bis September 2026. Der Schwerpunkt liegt auf fortgeschrittenen Architekturen in Common Lisp, der systematischen Evaluierung von KI-gestützter Softwareentwicklung („Vibe Coding“) sowie performanzkritischen Systemanalysen. Zu den zentralen technischen Neuentwicklungen gehören Githack (ein Git-basierter Lisp-Objektspeicher mit 2-Phasen-Commitment), llambda.lisp (ein allokationseffizienter, lokaler LLM-Inferenz-Engine-Port von llama.cpp) und CL-Torch (eine C++-FFI-Anbindung an LibTorch über die Werkzeuge Claw und LibClang).
Darüber hinaus dokumentieren die Beiträge praxiserprobte Entwurfsmuster wie die saubere Trennung von funktionalem Kern und imperativer Hülle (Functional Core / Imperative Shell) sowie den Einsatz von Lisp-Makros zur Kontextkomprimierung bei Sprachmodellen. Ein weiterer Schwerpunkt liegt auf detaillierten Benchmarks bezüglich des Zugriffs-Overheads von CLOS-Slots im Vergleich zu defstruct-Strukturen und MOP:STANDARD-INSTANCE-ACCESS. Ergänzt wird die Synthese durch Bugfix-Releases (ECL 26.5.5), Werkzeuge zur Code-Dokumentation (HEΛP, DRef 0.5) und Debatten über den Einfluss generativer KI auf Open-Source-Ökosysteme.
Wichtigste Punkte
Githack-Objektspeicher: Entwickelt von Joe Marshall, nutzt Githack Git-Merkle-Bäume als persistenten Lisp-Objektspeicher auf waisen Git-Branches (orphan branches). Atomare Objekte werden als blobs, zusammengesetzte Strukturen (Listen, Hash-Tables) als trees abgelegt. Bei transaktionalen Mutationen über mehrere Repositories hinweg skaliert die Bibliothek automatisch zu einem fehlertoleranten Zwei-Phasen-Commit-Protokoll (2PC) mittels Git Annotated Tags.
Vibe Coding & Makro-Architektur: Bei der Erstellung des browserbasierten Rogue-like-Spiels Recursive Descent generierte ein LLM (Gemini 3.1 Pro) über das Makro define-armory-equippable-item 28 unterschiedliche Ausrüstungsgegenstände inklusive Mechaniken wie :bleed-Statuseffekten und Unicode/Latin-1-Mapping (®), was die Fähigkeit von Sprachmodellen zur Abstraktion von Boilerplate-Code demonstriert.
Functional Core & Imperative Shell: Architekturmuster für Lisp-Anwendungen, bei dem der gesamte Systemzustand über reine Reducer-Funktionen und das Metaobject Protocol (MOP; via copy-instance und update-entity) unveränderlich verändert wird. I/O-Prozesse werden über SB-CONCURRENCY:QUEUE entkoppelt, während der Client-Zustand komprimiert, HMAC-SHA256-signiert und im localStorage des Browsers abgelegt wird.
Systematisch-Funktionelles Refactoring: Ein 8-phasiger Migrationsplan überführte monolithische Web-Handler (jrm-code-project.com) in reine Entscheidungs- und Renderingfunktionen. Zentrale Komponenten umfassen unmutable Domänenstrukturen (USER, STRIPE-CATALOG), komponierbare Middleware-Kombinatoren (require-guard) sowie explizite Ergebnistypen (RESULT/FAILURE).
CPS-Tabellenabstraktion: Implementierung einer unveränderlichen, auf binären Suchbäumen (BST) basierenden Tabellenstruktur in Continuation-Passing Style (CPS). Sie bietet $O(\log n)$-Operationen (table-lookup, table-min, table-delete), In-Order-Iteratoren (table-fold), Set-Funktionen (union, intersection, difference) sowie tief verschachtelte Pfadabfragen (table-lookup*) ohne Stack-Unwinding.
LLM-Leistungsvergleich in Lisp: Leistungsstarke Frontier-Modelle (Gemini 3.1 Pro, Claude Sonnet) erzeugen korrekten, idiomatischen Lisp-Code unter Ausnutzung von Homoikonizität, REPL-Introspektion und Makro-Kontextkomprimierung. Lokale Kompaktmodelle (Gemma 4 12B QAT, Qwen 3.8:27b) scheitern hingegen häufig an Syntaxfehlern, Klammerbalancierung und Endlosschleifen.
Spezialisierte Lisp-Bibliotheken: Bereitstellung von llambda.lisp (Pure Common Lisp Port von llama.cpp mit Linux-mmap-Speicherkopplung), TOTP (RFC 6238 2FA-Implementierung via cl-base32 und ironclad), lisp-p (allokationsfreier Reader-Validierungsautomat) sowie einer OpenAPI-3.0-Spezifikation inklusive generierter Client-SDKs für Common Lisp, Emacs Lisp, Python und Go.
CL-Torch FFI-Anbindung: Scott L. Burson bindet die C++-Bibliothek LibTorch über das FFI-Werkzeug Claw (unter Nutzung von libresect und LibClang) an Common Lisp an. Über den Parser wurden 645 von 1089 ATen-Tensorfunktionen automatisiert generiert sowie eine automatische Konvertierung von C++-Exceptions in Lisp-Conditions implementiert.
Git 2.55.0 Lisp-Integration: Das Release Git 2.55.0 erweitert den scheme-Userdiff-Treiber um ein verallgemeinertes Regexp-Pattern für unein gerückte öffnende Klammern und (def-Formen, wodurch korrekte Hunk-Header für Common Lisp über *.lisp diff=scheme in .gitattributes erzeugt werden.
Performanz-Analysen der CLOS-Slot-Zugriffe: Empirische Messungen von Tim Bradshaw, TurtleWare und Joe Marshall zeigen, dass Standard-CLOS-Slot-Zugriffe via slot-value oder Reader-Methoden bedingt durch dynamischen Dispatch und Obsoleszenz-Prüfungen ca. 6- bis 38-mal langsamer sind als Zugriffe auf defstruct-Felder. Die Nutzung von MOP:STANDARD-INSTANCE-ACCESS reduziert diesen Overhead um das 10-fache auf das Niveau direkter Speicherreferenzen.
Netzwerk-Race-Condition: Eugene Zaikonnikov dokumentiert eine Rassenbedingung in Verteilten Systemen bei extrem niedrigen Netzlatenzen: Die Antwort des Empfängers traf ein, bevor der Outbox-Prozess des Senders das ausstehende Befehlskommando registrieren konnte. Die Lösung erfordert die Registrierung der Befehlskennung vor dem Absenden.
Community & Ökosystem-Updates: Portierung des Dokumentationswerkzeugs HEΛP von XHTML-Framesets auf HTML5/CSS (W3.CSS), Trennung der Introspektionsbibliothek DRef 0.5 von PAX, Release von ECL 26.5.5 mit Bytecode-Compiler-Fixes sowie Diskussionen über Richtlinien bezüglich KI-generierter Patches in Open-Source-Repositories (z.B. Blanket-Ban beim Shirakumo-Projekt).
Glossar
CLOS (Common Lisp Object System): Das objektorientierte Subsystem von Common Lisp, das Mehrfachvererbung, generische Funktionen und dynamische Methodenverarbeitung unterstützt.
MOP (Metaobject Protocol): Eine Schnittstelle zur Introspektion und Anpassung der internen Funktionsweise des CLOS (z. B. Steuerung von Slot-Zugriffen oder Klassenerzeugung).
CPS (Continuation-Passing Style): Ein Programmierstil, bei dem Funktionen keinen Wert direkt zurückgeben, sondern das Ergebnis an eine explizit übergebene Nachfolgefunktion („Continuation“) weiterleiten.
Vibe Coding: Ein Entwicklungsansatz, bei dem Software vorwiegend durch Anweisungen an KI-Sprachmodelle erstellt und durch automatisierte Testreihen und Architekturregeln gesteuert wird.
FFI (Foreign Function Interface): Eine Schnittstelle, die es einer Programmiersprache ermöglicht, Funktionen aufzurufen, die in einer anderen Sprache (z. B. C oder C++) geschrieben wurden.
Homoikonizität: Die Eigenschaft einer Programmiersprache, bei der Programmcode in derselben Datenstruktur repräsentiert wird, die die Sprache nativ verarbeitet (in Lisp: Verschachtelte Listen/AST).
2PC (Two-Phase Commit): Ein verteiltes Protokoll, das sicherstellt, dass eine Datenbanktransaktion über mehrere Knoten oder Repositories hinweg atomar ausgeführt oder abgebrochen wird.
TOTP (Time-based One-Time Password): Ein Algorithmus nach RFC 6238 zur Erzeugung zeitbasierter Einmalpasswörter für die Zwei-Faktor-Authentifizierung.
Merkle-Baum: Eine kryptografische Baumdatenstruktur, bei der Blätter mit Datenblöcken und Elternknoten mit den Hashes ihrer Kinder gekennzeichnet sind (Fundament von Git).
AST (Abstract Syntax Tree): Der abstrakte Syntaxbaum; eine hierarchische Baumstruktur, die die grammatikalische Struktur von Quellcode repräsentiert.