CLX
Подробнее
- Автор
- Texas Instruments и MIT
- Год
- Тип
- Библиотека
- Лицензия
- MIT
- Исходный код
- github.com/sharplispers/clx
Интерфейс Common Lisp к X: полная реализация протокола X на чистом Lisp, без Xlib под капотом, написанная, когда X11 был нов, а Lisp-машины проигрывали.
CLX появился в результате сотрудничества Texas Instruments и MIT в 1987–88 годах; среди авторов были ЛаМотт Орен и создатель X Роберт Шейфлер, и библиотека поставлялась с релизами X11 как contributed-код. Это не обёртка над чем-либо. Там, где большинство языков общаются с X через Xlib, CLX открывает сокет к серверу и сам записывает байты протокола: окна, графические контексты и события — объекты Lisp, каждый запрос описан макросом, порождающим и сериализацию, и разбор ответа, а события обрабатываются через event-case. Та же идея, которую XCB воплотила на C пятнадцатью годами позже, с тем отличием, что в Lisp макросы для этого были с самого начала.
Нужда была вполне конкретной. У Explorer от Texas Instruments и машин Symbolics были собственные оконные системы, но Lisp начинал работать на обычных рабочих станциях Unix, где был X. CLX стал основой для реализаций CLIM, для тулкита Garnet из CMU и для StumpWM — оконного менеджера, целиком написанного на Common Lisp. Код до сих пор поддерживается, теперь под sharplispers на GitHub, и работает на SBCL, CCL и других уцелевших реализациях. Он пережил и Lisp-машины, и большинство программ, которые впервые им пользовались.