トップ «前の日記(2009-03-03) 最新 次の日記(2009-03-06)» 編集

Route 477



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%らしい