SML#のコンパイル・実行環境をdockerで立てる

「SML#で始める実践MLプログラミング」という本が発売されて買ったので読んでいる:

www.kyoritsu-pub.co.jp

それで本には動作環境例としてVirtualBoxを導入してUbuntuをセットアップすると書かれていて、macOSではどうなんだろと思って 本家サイトの動作環境ページ を見るとHomebrewでインストールできそうではあったものの、

Bottleが用意されているバージョンのmacOSを使用していない場合は, MassiveThreadsとSML#はソースからビルドされるため,このコマンドの 完了には長い時間がかかります.

と書かれておりあっはいとなったのでDockerfileを書くことにした。

正確に言うと既にeldeshさんという方がイメージをdocker hubに公開されていらっしゃるのですが、それに先に気付かなかったというのが本当のところです。

なのでこの記事は供養の意味が込められています。

書いたDockerfileは一応こちらにあります:

github.com

何も特別なことはしておらず、Debian GNU/Linuxでのインストール方法のページに従っているだけ。

LLVMやMassiveThreadsなどの依存するライブラリも必要に応じて インストールされます. SMLFormatなどのツールもおすすめパッケージとしてインストールされます.

と書かれており、それらの依存ライブラリをDockerfile内で自前ビルドする必要ももちろん無い。

これで生成されたイメージを使って1.4章の smlsharp -MMm main.smi > Makefilemake および ./main の実行ができました。よかったですね。