CLX
Mais informações
- Criado por
- Texas Instruments e MIT
- Ano
- Tipo
- Biblioteca
- Licença
- MIT
- Código-fonte
- github.com/sharplispers/clx
A interface do Common Lisp com o X: uma implementação completa do protocolo X em Lisp puro, sem Xlib por baixo, escrita quando o X11 era novo e as máquinas Lisp estavam perdendo terreno.
O CLX nasceu de uma colaboração entre a Texas Instruments e o MIT em 1987–88, com LaMott Oren e Robert Scheifler, o criador do X, entre os autores, e foi distribuído com as versões do X11 como código contribuído. Não é um wrapper de nada. Enquanto a maioria das linguagens fala com o X pela Xlib, o CLX abre um socket para o servidor e escreve ele mesmo os bytes do protocolo: janelas, contextos gráficos e eventos são objetos Lisp, cada requisição é definida por uma macro que gera tanto a serialização quanto a decodificação da resposta, e os eventos são tratados com event-case. É a mesma ideia que o XCB executou em C quinze anos depois, com a diferença de que o Lisp tinha as macros para isso desde o início.
A necessidade era concreta. Os Explorer da Texas Instruments e as máquinas da Symbolics tinham sistemas de janelas próprios, mas o Lisp começava a rodar em estações Unix comuns, onde o X era o que havia. O CLX virou a base das implementações do CLIM, do toolkit Garnet da CMU e do StumpWM, um gerenciador de janelas escrito inteiramente em Common Lisp. O código continua mantido, hoje sob sharplispers no GitHub, e roda no SBCL, no CCL e nas demais implementações sobreviventes. Sobreviveu tanto às máquinas Lisp quanto à maioria dos programas que o usaram primeiro.