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 |

2008-05-05

CLの開発環境/ライブラリ等の設定

| 18:01 | CLの開発環境/ライブラリ等の設定 - わだばLisperになる を含むブックマーク はてなブックマーク - CLの開発環境/ライブラリ等の設定 - わだばLisperになる

quekさんのletter: [Common Lisp] SBCL 環境 ライブラリ ~/.sbclrc

を読んで、確かにCLerの人々は、処理系をどういう設定で使っているのか、という情報は少ないなぁと思ったので、参考になるかどうかは疑問ですが、自分もどういう感じで使っているかを晒してみることにしました!

処理系

大した理由はないのですが、できるだけ沢山の処理系をできるだけ沢山のOSで動かすというのを目標にしています。

現在、SBCL、Clozure CL、Allegro CL、LispWorks、ECL、ABCL、CMUCL、MCLをMacOSX、Linuxの組み合わせで使っていて、MCL以外は、大体全部同じライブラリ環境で揃えています。ちなみにFFI系を利用するものが揃えられないのは、諦めています(^^;

ライブラリの設定

ライブラリ環境を揃えるのには、以前もこのブログで書いたasdf-addonsを利用しています。

asdf-addonsを利用すると、複数の処理系でライブラリを揃えるのが非常に楽なのでお勧めです。

他に似たものとしては、asdf-binary-locationsがあるようです。

処理系ごとの初期化ファイル

自分は、処理系ごとにSWANKが起動できて頻繁に利用するパッケージを全部読み込んだイメージをダンプしています。

イメージの作成にはmake-core.lispのような処理系で共通のファイルを作成して、各処理系が共通のライブラリを読み込んでダンプしています。

そして、作成したイメージを使ってSWANKを起動し、SLIMEで接続して利用しています。

各処理系毎の初期化ファイルは殆ど利用していませんが、Allegroの試用版だと処理系起動時にコアファイルとロードさせるファイルの両方を指定できないようなので、

.clinit.clに

;; .clinit.cl
;; -*- lisp -*-
;(princ "Hello! init file")

(and (find-package :swank)
     (load (merge-pathnames"etc/slime.lisp" (user-homedir-pathname))))

のようにして、SWANKを起動させるのに初期化ファイルを例外的に利用している位です。

まとめ

という感じで、自分は、環境をいちいちダンプしているのですが、ダンプするのもバッチ処理的なファイルを作成しておけば良いので割と頻繁にダンプしています。

イメージをダンプできないもの(LispWorksの評価版など)もあるのですが、この場合は、イメージ作成用のバッチファイルが、環境をロードするためのファイルになるようにしています。