読者です 読者をやめる 読者になる 読者になる

ほんとのこと知りたいだけなのに。

夏休みはもうおわり。

Mac OSX 10.8.5 に SBCL をインストールする。(2)

前口上

気をとりなおして 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

なんかマズそうなのでこの辺でインストールを中断しました。