2009-03-05
■ [scheme][mac] Ikarus Schemeを動かしてみよう
IkarusはR6RSにほぼ*1準拠した、Schemeのインクリメンタルコンパイラである。
最新リリースは一年前だけど、0.0.4がそろそろらしいし、MLもそこそこ投稿がある ので生きてはいるようだ。
まずはダウンロード。
普通にconfigureすると、gmp.hとlibgmp.soがないとか言われる。locateで探してみると、MacPortsのやつ(port install gmp)が あるらしい。こうか。
./configure --prefix=/Users/yhara/bin/scheme/ikarus-0.0.3/ CFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib
できたのでmake && make install。
~/binにもsymlinkを作っておく(ikarus[Enter]で起動できるように。僕の環境では~/binにパスが通してあるのだ)。
とりあえず --help。
/Users/yhara/research/r_6rs/ikarus-0.0.3 % ikarus --help Ikarus Scheme version 0.0.3 Copyright (c) 2006-2008 Abdulaziz Ghuloum Unhandled exception: Condition components: 1. &who: open-input-file 2. &message: "missing entities" 3. &i/o-filename: "--help"
そんなファイルはないって(笑)。
-hらしい。
つーか、「インクリメンタルコンパイラ」だけど、コンパイル結果をファイルに保存するみたいなオプションはないんだな。 使い方はインタプリタっぽい。
Ikarusには短いPDFのドキュメントがある。 第2章に「○分でわかるR6RS」みたいな説明があって、importの使い方、ライブラリの書き方、レコード型、例外について触れられている。
第3章はIkarus独自のライブラリについて。parameter、gemsym(!)、pretty print, trace, time(時間計測)など。 Gaucheのような「実用上便利なライブラリ」みたいな方向には思想が向いてない雰囲気を感じる。 まあ、コンパイラだし、「がりがり数値計算しようぜ!」という方向性なのかも。
aobenchを動かしてみよう
なんと、デフォルトではsrfiのライブラリが入ってないみたいなので、ドキュメントに従ってインストールする。
/Users/yhara/research/r_6rs % bzr checkout --lightweight http://bazaar.launchpad.net/~ikarus-srfi-team/ikarus-libraries/srfi srfi-ikarus bzr: ERROR: Not a branch: "https://launchpad.net".
ちょw
いろいろ試した結果、以下ならとりあえずうまく行く模様(正しいかは知らん)。
/Users/yhara/research/r_6rs % bzr checkout --lightweight https://code.launchpad.net/~ikarus-libraries-team/ikarus-libraries/srfi srfi-ikarus
なんかsrfi 27がうまく読み込めない (つづく?)
*1 94%らしい