CLX
詳細情報
- 開発者
- Texas Instruments、MIT
- 年
- 種別
- ライブラリ
- ライセンス
- MIT
- ソース
- github.com/sharplispers/clx
Common LispからXを使うためのインターフェース。下にXlibを持たず、Xプロトコルを純粋なLispで完全に実装したもの。X11が新しく、Lispマシンが劣勢だった頃に書かれた。
CLXは1987〜88年にTexas InstrumentsとMITの共同作業から生まれ、Xの生みの親ロバート・シャイフラーや、ラモット・オーレンらが関わり、X11のリリースにコントリビュートされたコードとして同梱された。何かのラッパーではない。多くの言語がXlib経由でXと話すところを、CLXはソケットを開いてサーバーへプロトコルのバイト列を自分で書き込む。ウィンドウ、グラフィックスコンテキスト、イベントはLispのオブジェクトで、各リクエストはマクロで定義され、シリアライズと応答のデコードの両方が生成される。イベントはevent-caseで処理する。15年後にXCBがCで実現したのと同じ発想だが、Lispには最初からそれを実現するマクロがあった。
必要は具体的だった。Texas InstrumentsのExplorerやSymbolicsのマシンには独自のウィンドウシステムがあったが、Lispは普通のUnixワークステーションでも動き始めており、そこにあったのはXだった。CLXはCLIM実装、CMUのツールキットGarnet、そして全部がCommon Lispで書かれたウィンドウマネージャーStumpWMの土台になった。コードは今もsharplispersの下でGitHub上で保守されており、SBCLやCCLなど生き残った処理系で動く。Lispマシンも、最初にこれを使ったプログラムの大半も、すでに過去のものである。