2011年5月14日土曜日

Clozure CL に乗り換えてみた


このエントリーをはてなブックマークに追加


Win環境でSBCLから乗り換えて使ってみた感想。


■コンパイルが早くてよい、ただし動作がちょっと遅い気もする。

■スレッドサポート
SLIMEへ時間のかかるコンパイルを送ってる時も、Emacsで補完とかちゃんとできます(WinのSBCLはできなかった;;

■日本語の扱いがSBCLちょっと違う。 → 参照

単純さと速度の面から、内部エンコーディングにはUTF-32が採用されている。

CP932とEUC-JPはサポートされているが、ISO-2022-JPはサポートされていない。

エンコーディング

US-ASCII
ISO/IEC 8859-1
UCS-2
UTF-8
UTF-16
UTF-32
CP932
EUC-JP
文字型

character, base-char
Unicode

■ベクタからの日本語変換は ccl:decode-string-from-octets を使う。

■JPはそのままだと使えない。

JPはパッチを出している方がいる → 参照

■ホームディレクトリが%USERPROFILE%になる。
SBCLの場合は%HOME%。これ結構不便で、USERPROFILEは変更するとOS側のユーザ情報をおかしくなってしまう。

私はwx86cl.exeを起動する専用バッチを作って、その中でUSERPROFILEを指定するようにしました。ついでにswankまで起動して、Emacsからはslime-connectしてます。
set HOME=c:\export\home\ccl
set USERPROFILE=%HOME%

set PATH=
set PATH=%PATH%;C:\export\utils\ccl
set PATH=%PATH%;C:\export\home\ccl\bin

cd %HOME%

wx86cl64 -l slime.lisp
binの中にはlibssl32.dllとか突っ込んでます。

■ccl-initは以下。上で設定している、USERPROFILEに配置しています。
(setf ccl:*default-external-format*
      (ccl:make-external-format :character-encoding :utf-8
                                :line-termination :unix)
      ccl:*default-file-character-encoding* :utf-8
      ccl:*default-socket-character-encoding* :utf-8)

;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname))))
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))

(push #P"c:/export/home/ccl/system/" asdf:*central-registry*)

0 件のコメント:

コメントを投稿