CMU Common Lisp

CMU Common Lisp
作者 カーネギーメロン大学
開発元 Various
初版 1980年代初頭
最新版
21f / 2025年10月1日(12か月前) (2025-10-01)
リポジトリ ウィキデータを編集
対応OS POSIX準拠の複数のオペレーティングシステム
プラットフォーム クロスプラットフォーム
対応言語 Common Lisp
種別 コンパイラおよびインタプリタ
ライセンス パブリックドメイン
公式サイト cmucl.org
テンプレートを表示

CMU Common Lisp (CMUCL) はカーネギーメロン大学で実装が行われたCommon Lisp処理系の自由ソフトウェアである。

CMUCLはLinuxやBSDなどの多くのUnix系のプラットフォームで実行することができる。Windowsへの試験的な移植版もある。CMUCLからはSteel Bank Common Lispというソフトウェアが派生しており、またScieneer Common Lispという商用版もCMUCLから作られている。

開発の経緯

CMUCLは最初Spice Lispの一部として1980年ごろ、Common Lispよりも早い時期に実装されたものであった。1985年にRob MacLachlanがPythonコンパイラ(後述)を作る目的でコンパイラを書き直し、CMUCLとしてIBM PC RT、MIPS、SPARCなどのUNIXワークステーションに移植した。インテルのx86アーキテクチャはレジスタが少なかったため、CMUCLの初期のバージョンではサポートしていなかった。CMUCLではタグの付いたデータ型とそうでない型の区別が厳格であり、ガベージコレクションはCPUレジスタの半分はタグ付けされたデータ型、もう半分はタグのないデータ型に割り当てられていることを前提に動作する。この方法はバックエンドのコンパイラ(Python という名前だが、プログラミング言語のPythonとは関係ない)が使うレジスタが不足することがある。

CMUでこのプロジェクトが中止になってからは(CMUCL のコンパイラ・ベースを使ったDylanによる実装が代わりに生き残った)、ボランティア・グループによりメンテナンスが行われている。1996年からこのグループで正規版のリリースが行われている。

同時期にインテルx86アーキテクチャへの移植も行われ、まずFreeBSDとLinuxで実行できるようになった。レジスタの不足は、保守的ガベージコレクタを新しく実装することで解決された。このガベージコレクタでは、レジスタにどんな型のどんな値が載っていてもよく、またガベージコレクションや値の移動を想定していないポインタであっても扱うことができる。

コンパイラと実行環境

特徴

脚注

[脚注の使い方]
  1. ↑ https://gitlab.common-lisp.net/cmucl/cmucl/blob/master/src/general-info/release-21f.md

関連項目

外部リンク