mltonのbootstrap

割とあっさりbootstrapまで出来たんだけど,一応メモ.

モチベーション

SML/njには PackReal が用意されておらず, 実数をバイト列として取り出すことが出来ません><
PackReal(とWord系)が豊富に用意されているっぽいので mlton を入れてみました.

インストール

(* あらかじめ gmp-devel をインストール *)
$ tar -xf  mlton-xxx.x86-cygwin.tgz
$ cd usr/
$ mv bin/* /usr/bin/
$ mv lib/mlton /usr/lib/
(* man/ share/も同じくコピー *)
$ tar -xf mlton-xxx-src.tgz
$ cd mlton-src/
$ make all (* latexが入ってない場合は make all-no-docs *)
$ make install

SML/njがインストールされている場合, そこからもbootstrap出来ます. (ナニソレすごい…)

make smlnj-bootstrap
make install

動作確認

$ cat hw.sml
print "Hello, World!\n";
$ mlton hw.sml
$ ./hw
Hello, World!

最後に

ものすごくコンパイル重いです. *1
インタプリタの有り難味をヒシヒシと感じられますね.
出来るだけSML/njでデバッグしてからmltonでコンパイルが良さそうです.

*1:一度C言語吐いてるっぽい?それにしても重過ぎるような…