Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2007-12-28

SBCL 1.0.13リリース

| 01:36 | SBCL 1.0.13リリース - わだばLisperになる を含むブックマーク はてなブックマーク - SBCL 1.0.13リリース - わだばLisperになる

SBCLは大体毎月25日にリリースされるんでしょうか、今月も27日に新バージョンがリリースされました。

リリースノートなどは普段全く読みませんが、たまたま読んでみたら、run-programの動作が強化されたということで、

enhancement: RUN-PROGRAM allows unicode arguments and 
environments to be used (using the default stream external
 format), and allows non-simple strings to be used.
(thanks to Harald Hanche-Olsen)

とのこと。これまた、たまたまですが、昨日PLEACの問題を書いているときに

(let ((output 
       (with-output-to-string (out)
	 (sb-ext:run-program "date" '() 
			     :output out
			     :search '("/bin" "/usr/bin")
			     :environment '("LANG=ja_JP.utf-8")))))
  (princ output))

というものの出力が、

2007年 12月 29日 土曜日 00:58:28 JST

となってしまい、うーん、と思っていました。

1.0.13で試してみると、

2007年 12月 29日 土曜日 00:54:24 JST

とエンコードが合っていればきちんと表示されます。(例はUTF-8で揃えています)

この辺は、KMRCLでは問題なかったので、PLEACではKMRCLを使いました。(まあ、処理系依存度が低くなるので、KMRCLを使ったほうが良いとは思います…)

それで、全然脈絡はありませんが、SBCLのソースからのビルド、普段使っているイメージの作成までの記録をつけて置くことにしてみました。

以下メモです。

  1. ソース取得

$ wget http://nchc.dl.sourceforge.net/sourceforge/sbcl/sbcl-1.0.13-source.tar.bz2

  1. 解凍

$ tar jxvf sbcl-1.0.13-source.tar.bz2

  1. マルチスレッドで使いたいのでカスタマイズファイルcustomize-target-featuresに記述

$ cat ./customize-target-features.lisp

(lambda (features)
      (flet ((enable (x)
               (pushnew x features))
             (disable (x)
               (setf features (remove x features))))
        ;; Threading support, available only on x86/x86-64 Linux, x86 Solaris
        ;; and x86 Mac OS X (experimental).
        (enable :sb-thread)))
  1. ビルド

$ cat ./sbclcompr

#!/bin/sh

SBCL_HOME=/usr/local/sbcl/1.0.12/lib/sbcl /usr/local/sbcl/1.0.12/bin/sbcl $*

$ sh make.sh "./sbclcompr"

  1. ビルド後のテスト

$ cd tests && sh ./run-tests.sh

  1. ドキュメントをビルド

$ cd doc/manual && make

  1. インストール

$ INSTALL_ROOT=/usr/local/sbcl/1.0.13 sh ./install.sh