言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

HappyABC http://happyabc.org/

AVM2 と言えば、scheme から Flash を作れるという id:mzp さんの凄いプロジェクトがあるので試してみた。コンパイルに必要な物が沢山あって一見大変そうだけど、マックならわりとこんな感じでいけます。

準備

まず macports で素直に入るパッケージを入れます。

sudo port install ocaml
sudo port install caml-findlib
sudo port install caml-ounit
sudo port install caml-extlib

次に変更が必要な物。omake のインストールは現在(omake @0.9.8.5-3)エラーが出るので、http://ocaml-nagoya.g.hatena.ne.jp/mzp/20090705/omake を元にソースを修正してやり直します。ソースは macports の作業ディレクトリの奥深くに出来るので、locate omake_exec.ml で探しましょう。

sudo port install omake
(ソース omake_exec.ml を (* external sync : unit -> unit = "caml_sync" *) のようにコメントアウトしてもう一度実行)
sudo port install omake

それから、http://ocaml-nagoya.g.hatena.ne.jp/mzp/20090802/xmllight を読んで xml-light をインストールします。具体的な手順は次の通りです。

curl -O http://howdyworld.org/patches/Portfile
sudo port install

Happy ABC のビルドとインストール

git clone git://github.com/mzp/scheme-abc.git
cd scheme-abc

omake config
omake all
omake check
sudo omake install

Happy ABC のテスト

では早速使ってみます。まだ Flash を作る機能は動かないみたいなので Tamarin を使って動かします。

$ cat scm/example/hello.scm 
;; Simple hello world
;;
;; expect output:
;;; Hello,world!!
(trace "Hello,world!!")

$ habc --abc-stage -o hello scm/example/hello.scm 
$ avmshell hello.abc 
Hello,world!!

これは面白い!ソースコードも大変きれいで勉強になります。