ひさびさにOpen Dylan — #:g1

Posted 2011-12-14 16:49:00 GMT

Open DylanのBeta 4がリリースされたのが、2007だそうなので実に4年ぶり、久々のリリースだそうです(2年位前にBeta 5が出てたような…)

そんなOpen Dylanですが、中置構文のLispと言われるDylanの実装で、LispWorkを作っていた、Harlequinが、DylanWorksとしてリリースしたものが紆余曲折あってオープンソースとして公開されたものです。
Dylanが、中置構文のLispと言われるといわれる所以ですが、元々開発初期の開発メンバーがLispのチームだった、構文も初期はS式だった、Lisp方式のマクロ(パターンマッチ)がある、オブジェクト指向システムが、CLOSに良く似ている等々で、LISPコミュニティからもLispの方言と捉えられています。ちなみに、マクロ定義の例ですが、On Lispで有名な、aifだと、
define macro aif
  { aif(?:expression) ?b1:body else ?b2:body end }
    => { let ?=it = ?expression;
        if(?=it) ?b1 else ?b2 end }
  { aif(?:expression) ?:body end }
    => { let ?=it = ?expression;
        if(?=it) ?body end }
end macro aif;
という風に書けます。
Scheme + CLOS - S式のLispというところかなと思います。
さて、今回は久々のリリースということもあってか気合いがはいっていて、SLIMEがDylan使えるように、Swankサーバのバイナリが付いてきます。
紹介動画も作成されたので、まずはこちらを見てみると良いかもしれません。 SLIMEの導入方法ですが、このページの下の通りにすれば、一式セットで導入でき、この動画の通りのことはできると思います。
とりあえず試行錯誤ですが、自分は下記の手順で作業してみています。

下準備

Common Lisp等で、SLIMEの環境を作っている人は、恐らく既存の環境と競合することが多いので、別にEmacsの環境を用意した方が良いと思います。
% export PATH=~/Open-Dylan/bin:$PATH
% export PATH=/opt/opendylan-2011.1/bin:$PATH

雛形パッケージを作成

% make-dylan-app foo

作業するパッケージを開く

SLIMEを起動してREPLのところに
open 作成した/場所/foo.lid
と入力。元々あるパッケージはchange-packageで切り換えられるのですが、自分で作成したパッケージはどうやって管理するのか分かっていないのでフルパスで入力しています。

ビルド

REPLで、
build
とすると、今開いているプロジェクトをビルドします。ソースコード上であれば、C-c C-kでビルドできます。
手元の環境では、一番最初に開いた時はC-c C-kが効かなかったりするのですが、REPLでbuildしたりしているといつの間にか使えるようになっています。この辺りはちょっと謎です。
コンパイルでの警告は、いつものSLIMEのように下線が付いたりして、以前に比べるとかなり開発しやすくなっています。また、自分なところですが、やはり、C-c C-k一発で、ビルドされるとだいぶ楽です。
以上、やや中途半端な紹介でしたが、かなり使い易くなったOpen Dylanを試してみてはいかがでしょうか。

comments powered by Disqus