CLX
Więcej informacji
- Twórca
- Texas Instruments i MIT
- Rok
- Typ
- Biblioteka
- Licencja
- MIT
- Kod źródłowy
- github.com/sharplispers/clx
Interfejs Common Lispa do X: kompletna implementacja protokołu X w czystym Lispie, bez Xlib pod spodem, napisana, gdy X11 było nowe, a maszyny Lispowe przegrywały.
CLX powstał we współpracy Texas Instruments i MIT w latach 1987–88; wśród autorów byli LaMott Oren i twórca X, Robert Scheifler, a kod dołączano do wydań X11 jako dodatek. To nie jest nakładka na cokolwiek. Tam gdzie większość języków rozmawia z X przez Xlib, CLX otwiera gniazdo do serwera i sam zapisuje bajty protokołu: okna, konteksty graficzne i zdarzenia są obiektami Lispa, każde żądanie definiuje się makrem, które generuje zarówno serializację, jak i dekodowanie odpowiedzi, a zdarzenia obsługuje się przez event-case. To ten sam pomysł, który XCB zrealizował w C piętnaście lat później, z tą różnicą, że Lisp od początku miał makra, by to zrobić.
Potrzeba była konkretna. Explorer firmy Texas Instruments i maszyny Symbolics miały własne systemy okienkowe, ale Lisp zaczął działać na zwykłych stacjach roboczych z Uniksem, gdzie liczyło się X. CLX stał się fundamentem implementacji CLIM, toolkitu Garnet z CMU oraz StumpWM, menedżera okien napisanego w całości w Common Lispie. Kod jest nadal utrzymywany, obecnie w ramach sharplispers na GitHubie, i działa na SBCL, CCL oraz pozostałych żywych implementacjach. Przeżył zarówno maszyny Lispowe, jak i większość programów, które pierwsze go używały.