WindowsでSBCLをビルド
SBCLは, Common Lisp処理系の中では早いらしい
でも, 公式に配布されているWindows用バイナリは
This is experimental prerelease support for the Windows platform: use at your own risk. "Your Kitten of Death awaits!"
というメッセージが(--noinformしても)必ず表示されてうっとうしい
それにせっかくだから新しいものを使いたいので, 以下のサイトを参考にcygwinでビルドしてみた
- http://sbcl-internals.cliki.net/Build%20on%20Windows
- http://www.sbcl.org/getting.html
- http://www.rhinocerus.net/forum/lang-lisp/436971-sbcl-kitten-message-help-needed.html
gccのバージョンは
gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
まずSBCLのビルドに必要なので, SBCLのWindows用バイナリ(sbcl-1.0.37-x86-windows-binary.msi)をインストールする
一緒に, SBCLのソース(sbcl-1.0.44-source.tar.bz2)もダウンロードしておく
cygwinからsbclのソースを展開し, ディレクトリ移動
$ tar xfj sbcl-1.0.44-source.tar.bz2 $ cd sbcl-1.0.44
gcc-3が無いと怒られるので, シンボリックリンクで誤魔化す
$ ln --symbolic /bin/gcc.exe /bin/gcc-3.exe
sbcl-1.0.44/src/runtime/runtime.cからKittenメッセージをコメントアウト
/* #ifdef LISP_FEATURE_WIN32 fprintf(stderr, "\n\ This is experimental prerelease support for the Windows platform: use\n\ at your own risk. \"Your Kitten of Death awaits!\"\n"); fflush(stdout); fflush(stderr); #endif //*/
sbcl-1.0.44に戻って
$ sh make.sh
大量に文字が流れるので放置. 最後にWARNINGが1つ出る
WARNING! Some of the contrib modules did not build successfully or pass their self-tests. Failed contribs:" sb-simple-streams
sbcl-1.0.44/output/prefix.defでインストール先を設定.
また, SBCL_HOMEの中身を消しておく
SBCL_PREFIX='/home/TARO/sbcl' SBCL_HOME=''
install.shを実行してインストール.
$ sh install.sh
sbcl.exeを起動するときは, sbcl.coreを指定する必要がある
sbcl.exe --core ../lib/sbcl/sbcl.core --noinform
Kittenメッセージは出力されなくなったけれど, 問題が出ないかどうかはまだ不明.