Steel Bank Common Lisp
ページ作成日
公式Webサイト
概要
SBCL(Steel Bank Common Lisp)は、高性能なCommon Lisp実装です。
CMUCL(Carnegie Mellon University Common Lisp)からフォークしたプロジェクトで、ANSI Common Lisp標準に準拠しています。
ネイティブコードコンパイラ、デバッガ、プロファイラ、コードカバレッジツールなど、充実した開発環境を提供します。
「Steel Bank」という名前は、Carnegie Mellon大学の名前の由来となった2人の人物にちなんでいます。
鉄鋼王アンドリュー・カーネギー(Carnegie)から「Steel」、銀行家アンドリュー・メロン(Mellon)から「Bank」を取っています。
CMUCLが32ビット版のみの提供であるのに対し、SBCLはx86-64を含む多くのアーキテクチャに対応しており、64ビット環境でも利用できます。
パッケージの作成(バイナリ版)
SBCLは公式サイトでLinux向けのバイナリが配布されています。 これをSlackwareパッケージ化する手順を説明します。
1. バイナリのダウンロード
まず、ダウンロード用のディレクトリを作成し、バイナリをダウンロードします。
$ cd ~/Downloads $ mkdir sbcl-2.6.0 $ cd sbcl-2.6.0 $ wget http://prdownloads.sourceforge.net/sbcl/sbcl-2.6.0-x86-64-linux-binary.tar.bz2
2. パッケージ用ディレクトリの準備
ダウンロードしたバイナリを解凍し、パッケージ用ディレクトリを準備します。
$ tar -jxvf sbcl-2.6.0-x86-64-linux-binary.tar.bz2 $ cd sbcl-2.6.0-x86-64-linux
3. インストール先の指定とインストール
INSTALL_ROOTを指定して、パッケージ用ディレクトリにインストールします。
$ INSTALL_ROOT=/tmp/sbcl-2.6.0/usr/local sh install.sh
4. パッケージの作成
rootユーザに切り替えて、Slackwareパッケージを作成します。
$ cd /tmp/sbcl-2.6.0 $ su Password: # makepkg --linkadd y --chown y sbcl-2.6.0-x86_64-1.txz Slackware package maker, version 2.1. [画面表示省略] Package creation complete.
5. パッケージのインストール
作成したパッケージをインストールします。
# chmod 755 sbcl-2.6.0-x86_64-1.txz # installpkg sbcl-2.6.0-x86_64-1.txz
6. 動作確認
インストール後、SBCLが正常に起動することを確認します。
$ sbcl This is SBCL 2.6.0, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. ... * (+ 1 2 3) 6 * (quit)
ソースからのビルド
SBCLは大部分がLispで書かれているため、ソースからビルドするには既存のANSI Common Lisp実装が必要です。
SlackwareにはCLISPが含まれているため、これをホストコンパイラとして使用できます。
Lispでコンパイルするというのも、滅多に見られるものではないので、経験しておくと良いかもしれません。
1. ソースのダウンロードと展開
$ cd ~/Downloads $ wget http://prdownloads.sourceforge.net/sbcl/sbcl-2.6.0-source.tar.bz2 $ tar jxvf sbcl-2.6.0-source.tar.bz2 $ cd sbcl-2.6.0
2. CLISPをホストにしてビルド
--xc-hostオプションでCLISPを指定してビルドします。
もしも、SBCLをアップグレードする場合には、--xc-host='sbcl'にしましょう。
$ /usr/bin/time -v sh make.sh --xc-host='clisp'
[画面出力を略]
//build started: Mon Jan 12 14:21:40 JST 2026
//build finished: Mon Jan 12 14:38:48 JST 2026
Command being timed: "sh make.sh --xc-host=clisp"
User time (seconds): 962.33
System time (seconds): 62.84
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 17:08.45
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 285260
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 264
Minor (reclaiming a frame) page faults: 24531403
Voluntary context switches: 3660
Involuntary context switches: 92589
Swaps: 0
File system inputs: 73560
File system outputs: 411056
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
3. ドキュメントのビルド
$ cd doc/manual $ make $ cd ../..
4. パッケージ用ディレクトリへのインストール
$ INSTALL_ROOT=/tmp/sbcl-2.6.0/usr sh install.sh
4. パッケージの作成
Slackwareパッケージを作成します。
$ cd /tmp/sbcl-2.6.0 $ sudo makepkg --linkadd y --chown y ../sbcl-2.6.0-x86_64-1.txz Slackware package maker, version 2.1. [画面表示省略] Package creation complete.
5. パッケージのインストール
作成したパッケージをインストールします。
cd .. sudo installpkg sbcl-2.6.0-x86_64-1.txz
6. 動作確認
インストール後、SBCLが正常に起動することを確認します。
$ sbcl This is SBCL 2.6.0, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. ... * (+ 1 2 3) 6 * (quit)
Enjoy your Slackware life!