SML#のコンパイル・実行環境をdockerで立てる
「SML#で始める実践MLプログラミング」という本が発売されて買ったので読んでいる:
それで本には動作環境例としてVirtualBoxを導入してUbuntuをセットアップすると書かれていて、macOSではどうなんだろと思って 本家サイトの動作環境ページ を見るとHomebrewでインストールできそうではあったものの、
Bottleが用意されているバージョンのmacOSを使用していない場合は, MassiveThreadsとSML#はソースからビルドされるため,このコマンドの 完了には長い時間がかかります.
と書かれておりあっはいとなったのでDockerfileを書くことにした。
正確に言うと既にeldeshさんという方がイメージをdocker hubに公開されていらっしゃるのですが、それに先に気付かなかったというのが本当のところです。
なのでこの記事は供養の意味が込められています。
書いたDockerfileは一応こちらにあります:
何も特別なことはしておらず、Debian GNU/Linuxでのインストール方法のページに従っているだけ。
LLVMやMassiveThreadsなどの依存するライブラリも必要に応じて インストールされます. SMLFormatなどのツールもおすすめパッケージとしてインストールされます.
と書かれており、それらの依存ライブラリをDockerfile内で自前ビルドする必要ももちろん無い。
これで生成されたイメージを使って1.4章の smlsharp -MMm main.smi > Makefile
と make
および ./main
の実行ができました。よかったですね。