SML#を使ってみ・・・ようとした。

いや、最終的にはつかえたけれども。


つい先日1.0が出たSML#なるものを私も使ってみようと思ったわけである。
なんとご丁寧なことに、Windows用にはMinGWを使った実装がバイナリで公開されている。
いやはやありがたいことですよ。


で、動かしてみたら・・・

ld.exe : cannot find -lgmp

なんて言って落ちる。
評価してるのは、ただの1。


そもそもldなんてなんで動くのやら?と思い調べてみると、ここに「コンパイラが頑張ってるんだよー」と書いてある。
なるほど、動的にライブラリ作って貼り付けてるわけだ。


で、-lはライブラリの指定として、gmpとはなんぞや・・・と思っていたら、GNU MPだった。
演算用ライブラリ。
mingwのパッケージにももちろんある*1
mingw-getで調べてみると、出てくる出てくる・・・
ここで注意、libgmpはMSYS用とMinGW用がある。
ここで入れないといけないのはMinGWであって、MSYS用ではない。
前者を入れると、

SML# version 1.0.0 (2012-04-06 17:51:49 JST) for x86-mingw
# 1; (* ここが入力 *)
Creating library file: \sk34./000.lib
val it = 1 : int

とまあ、なんかファイルを作っているところまでばっちり見えて、動きました、とさ。
少しいじりたいけど、SMLはあんまりよく知らないし、SML#独自の機能なんてなおさら・・・

*1:気付かないでソース持ってきてビルドしてたけど。後輩の指摘でようやく気付いた。感謝。