CLX
Mehr Infos
- Entwickler
- Texas Instruments und MIT
- Erschienen
- Typ
- Bibliothek
- Lizenz
- MIT
- Quellcode
- github.com/sharplispers/clx
Die Schnittstelle von Common Lisp zu X: eine vollständige Implementierung des X-Protokolls in reinem Lisp, ganz ohne Xlib darunter, geschrieben, als X11 neu war und die Lisp-Maschinen an Boden verloren.
CLX entstand 1987–88 in einer Zusammenarbeit von Texas Instruments und dem MIT, zu den Autoren zählten LaMott Oren und Robert Scheifler, der Urheber von X, und wurde als Beitrag zu den X11-Releases mitgeliefert. Es ist kein Wrapper um irgendetwas. Während die meisten Sprachen über Xlib mit X sprechen, öffnet CLX selbst einen Socket zum Server und schreibt die Protokollbytes eigenhändig: Fenster, Grafikkontexte und Ereignisse sind Lisp-Objekte, jede Anfrage wird mit einem Makro definiert, das sowohl die Serialisierung als auch die Dekodierung der Antwort erzeugt, und Ereignisse behandelt man mit event-case. Es ist dieselbe Idee, die XCB fünfzehn Jahre später in C umsetzte, mit dem Unterschied, dass Lisp die dafür nötigen Makros von Anfang an hatte.
Der Bedarf war konkret. Die Explorer von Texas Instruments und die Symbolics-Maschinen hatten eigene Fenstersysteme, doch Lisp begann auf gewöhnlichen Unix-Workstations zu laufen, wo X nun einmal das war, was es gab. CLX wurde zur Grundlage der CLIM-Implementierungen, von Garnet, dem Toolkit der CMU, und von StumpWM, einem Fenstermanager, der vollständig in Common Lisp geschrieben ist. Der Code wird bis heute gepflegt, inzwischen unter sharplispers auf GitHub, und läuft auf SBCL, CCL und den übrigen noch lebenden Implementierungen. Er hat sowohl die Lisp-Maschinen als auch die meisten der Programme überlebt, die ihn zuerst benutzten.