* 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 を指定


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS