Lisp Advent Calendar 2012の15日目の記事です。

これから、Arcをはじめるひとのために、処理系まとめ。

オフィシャルなArc

まず、Arcをつかってみたいと思った人は、http://www.arclanguage.org/install を参考にしてインストールすることだろう。そして、つかうのをやめてしまうだろう。

このArcは、Paul Grahamが開発中のArcのスナップショットにすぎない。しばらくアップデートもされていない。機能的にも物足りないかもしれない。

しかし、これがオフィシャルであり、Paul Grahamが実装した唯一のArc処理系だ。つかってみるには十分な価値がある。なにより、この処理系の実装コードを読むことは、とても勉強になるだろう。

ただ一つ注意すべきは、このインストールマニュアルに書いてある、 http://ycombinator.com/arc/arc3.tar はバージョンが古い。最新バージョンは、 http://ycombinator.com/arc/arc3.1.tar だ。これは、Arc Forumでしかアナウンスされていない。すでにスレッドも流れているので、普通の人は気づかないだろう。

気をつけよう。罠だらけだ。

Anarkiリポジトリ

Anarki (AN ARc wiKI) はオフィシャルなArcをもとに、ユーザーがいろんなことをして遊んでいる感じのArcリポジトリだ。

バグフィックスや有益なライブラリなどが追加されていて、実用的である。オフィシャルなArcには、公開されているリポジトリなどない。最新のものがつかいたい場合、Anarkiは選択肢のひとつとなるだろう。

しかし、名前のとおり、wikiスタイルのリポジトリということなので(なにそれ?)、みんなが好き勝手にpushしたりする。フリーダムさがたまらない。当然、たまに壊れていることもあるので注意したい。

最近はガイドラインっぽいものがつくられたり、更新する人も減ってきているため、安定しているかもしれない。

なんとか言語でArcを実装してみました系

ここにまとまっている。

Arc Forumに出入りしている人は、当たり前のように処理系を実装しちゃうひとたちばっかでこわい。

基本的にArcのサブセットだったり、独自の機能を盛り込んでいたり、そもそも、すでに別言語になってたりする。純粋にArcを楽しみたいなら避けるべきかもしれない。

まあ、おもしろいと思うが、ぼくもあまり追いかけてはいないため、これ以上の言及はやめておく。

arc-mg

arc-mgは、ぼくがメンテナンスしているArc処理系だ。処理系を自作したい欲求は日増しに高まるが、あくまで、オフィシャルのArcをベースとしている。AnarkiやArc Forumであがったパッチやライブラリを取り込んだり、独自の拡張、ライブラリの追加などをやっている。

ぼくが必要だと思った機能、ライブラリを優先的に実装しているので、万人には向かないかもしれない。しかし、少なくとも、ぼくがつかっている範囲では、十分実用的だ。

mgはmgikenの略であり、ガンプラでいうところの、マスターグレードだ。スタンダードアイテム的な位置づけを目指したい。パーフェクトグレードはpg(Paul Graham)にしかつくれない。

これから、Arcをはじめる場合は、まずこれを試してみたらいいのではないかと思う。現状、サポートはあまり期待できないが(自分で言うな)、フィードバックは歓迎する。

インストールはGentooなら、overlayを用意しているので、laymanの設定後に、

emerge arc-mg

すればok。Racketもまとめてインストールされるので楽ちん。

自作のライブラリについても、ebuildを用意してある。自分用につくっているということもあり、Gentooでつかうことを前提としている。まあ、Linuxでなら問題なく動くと思う。その場合は、Makefileがあるので、それぞれ、git cloneしてmakeすれば大丈夫だと思う。依存関係などは、がんばって解消してほしい。

まとめ

ざっくりとArc処理系の紹介をしてみた。しかし、別にArcを普及させようとは思っていない。むしろ、Gentooを激しくオススメしておく。

これを機会に、GentooとArcをはじめよう。