前口上
気をとりなおして SBCL をソースからビルドします。
ダウンロード & 解凍
SBCLのサイトから ソース(sbcl-1.1.12-source.tar.bz2)をダウンロード&解凍。
http://www.sbcl.org/platform-table.html
コンパイル
コマンドを確認し実行。
$ sudo sh make.sh --with-sb-thread
するとエラーが発生。
<メッセージ>
make-host-1.sh: line 34: sbcl: command not found
メッセージでググるとmake.sh するには SBCL を先にインストールしておく必要があるとのこと。
https://bugs.launchpad.net/sbcl/+bug/1052290
<抜粋>
SBCL needs a Common Lisp to bootstrap; usually, it's bootstrapped with an older SBCL. If you just want to install SBCL, download a binary from sbcl.org and install from that. If you want to build SBCL, download a binary from sbcl.org, install it, and then build from source.
先にバイナリ版をインストールしていたので「あるはず?」と思ったが、emacs の shell-mode で実行していたが、cocoa emacs には sbcl の パスが通っていない事を思い出した。
terminal を起動させ、解凍したディレクトリに移動し再度コマンドを実行。
$ sudo sh make.sh --with-sb-thread
少し時間がかかった後、make.sh 完了。 しかし 警告が出ている。
<メッセージ>
WARNING! Some of the contrib modules did not build successfully or pass their self-tests. Failed contribs:" sb-posix
マニュアルには "The build seems to have finished successfully..." とメッセージが出れば 完了とあったが。。。
とりあえず警告なのでそのまま進んでみました。
次にマニュアルに記載のあるコマンドを実行。
$ cd tests && sh run-tests.sh
これは結構時間がかかるね。。。。結果が帰ってきました。 どう見たらよいのかわかりませんが、まぁ雰囲気良さそうなので良しとします。
<結果> test undefined-classoid-bug ok Finished running tests. Status: Skipped (broken): debug.impure.lisp / (TRACE ENCAPSULATE NIL) Skipped (broken): debug.impure.lisp / (TRACE-RECURSIVE ENCAPSULATE NIL) Expected failure: packages.impure.lisp / USE-PACKAGE-CONFLICT-SET Expected failure: packages.impure.lisp / IMPORT-SINGLE-CONFLICT Expected failure: walk.impure.lisp / (WALK-LET* HAIRY-SPECIALS) Expected failure: walk.impure.lisp / (WALK-LET* HAIRY-SPECIALS) (4 tests skipped for this combination of platform and features) ok //apparent success (reached end of run-tests.sh normally) Fri Oct 18 10:51:46 JST 2013
最後にドキュメントを作成するコマンドを実行します。
$ cd doc/manual && make
あれ?エラーが出た。。。。 sb-posix と出ているので先程の警告と関係ありそうですね。。。
$ cd doc/manual && make -bash: cd: doc/manual: No such file or directory yanqirenshi-no-MacBook-Air:tests yanqirenshi$ pwd /Users/yanqirenshi/Downloads/sbcl-1.1.12/tests yanqirenshi-no-MacBook-Air:tests yanqirenshi$ cd .. yanqirenshi-no-MacBook-Air:sbcl-1.1.12 yanqirenshi$ rm -f asdf.texinfo ln -s ../../contrib/asdf/asdf.texinfo touch tempfiles-stamp for module in :sb-md5 :sb-queue :sb-concurrency :sb-rotate-byte :sb-grovel :sb-sprof :sb-bsd-sockets :sb-cover :sb-posix; do \ test -f "../../contrib/"/`echo $module | tr -d :`/test-passed \ || { echo "The documented contrib $module seems \ to have failed its tests." && exit 1; } \ done The documented contrib :sb-posix seems to have failed its tests. make: *** [docstrings] Error 1
なんかマズそうなのでこの辺でインストールを中断しました。