* SML# 0.90をMinGWでビルドしよう [#dd97bbc7] - 以下では SML/NJ で試したが、 MLton のほうがよいようです - 前提 -- 最新のMinGWとMSYSをmingw-getでインストール (gcc,c++,msys,...も) 参照: http://www.mingw.org/wiki/Getting_Started -- GMP 4.1 MinGWバイナリ 参照: http://www.cs.nyu.edu/exact/core/gmp/ -- SML/NJ 110.74 http://www.smlnj.org/ --- smlnj.msi から、 ''C:\SMLNJ'' にインストール (デフォルトは Program Files\...だが、パスに空白文字があるのが怖かったので) -- C:\SMLNJ\bin;C:\MinGW\msys\1.0\bin;C:\MinGW\bin にパスが通った状態 - 手順 -- http://www.pllab.riec.tohoku.ac.jp/smlsharp/?HowToBuild * ダウンロード [#f0a92fa0] - http://www.pllab.riec.tohoku.ac.jp/smlsharp/?Download * パッチ [#a27080e8] - パッチ by keigoi #ref(smlsharp-0.90-mingw.patch); - パッチ by uenoB #ref(r3786.diff); - パッチ方法 cd smlsharp-0.90 patch -p1 <../smlsharp-0.90-mingw.patch patch -p2 <../r3786.diff * コンパイル [#bca04739] ./configure make make install ** 途中でコンパイラがエラー(エラーメッセージなしの一般保護例外?)で落ちる場合 [#i2c02d2f] - そのディレクトリにある *.o を削除してmsysを抜け、もう一度msysを起動してためせばうまくいった。原因不明。msysの不安定さが原因? * 試す [#o63def30] - a.sml print "Hello, World!" - a.smi _require "basis.smi" - コマンドライン smlsharp a.sml - 実行 ./a.out ** うまくいかない場合 [#s0534c0e] - smlsharp -v で、コンパイルのどの段階で落ちたのかがわかる - ldの後に落ちている場合、環境変数TMP/TEMP を C:\tmp など単純な場所に変更する * MLton でビルド [#y6dfc5af] - MLtonを c:\MLton にインストール (デフォルトはProgram Files\...だが以下略) -- インストールのオプションで "Custom" を選ぶ -- Browse … で C:\MLton を指定