DockerでMinCamlの例のレイトレを動かす
追記 (2023/01/14)
https://gyazo.com/2537f19b3d3e1fdcf2ef43c4e35da756
手元のWSL環境やMac環境でこのレイトレを動かそうとしたのだが、WSL、Mac共にうまく動かず...。仕方がないのでMac上のDockerを使ってUbuntuを起動し、その上でレイトレを動かしてみた。
まずはmin-camlをビルド可能なDockerイメージを作成する。
$ cd ~/src
$ mkdir my-min-caml-image
$ vi Dockerfile
code:Dockerfile
FROM ubuntu:latest
RUN apt-get update && apt-get install -y build-essential ocaml libmpfr-dev gcc-multilib g++-multilib git time
$ docker build -t my/min-caml .
これでDockerイメージ my/min-caml が作成できる。
code:shell
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my/min-caml latest c89b3851c7cf 14 seconds ago 853MB
my/a latest 0217ccf820e8 23 minutes ago 72.9MB
getting-started latest c4826620db04 2 hours ago 179MB
このDockerイメージを使ってmin-camlとレイトレをビルド & 実行してみる。
$ cd ~/src
$ git clone git@github.com:esumii/min-caml.git
$ cd min-caml
$ docker run -it --rm -v pwd:/root -w /root my/min-caml bash
$ # コンテナの中
$ ./to_x86
$ make
$ cd min-rt/
$ make
$ exit
$ # コンテナから脱出
~/src/min-caml/min-rt 以下に contest.mincaml.ppm 等のPPMファイルが生成されてればOK。スペースシャトルがかわいい。
https://gyazo.com/2537f19b3d3e1fdcf2ef43c4e35da756
https://gyazo.com/7c7beefc7885eab8e72cba16920e2324
ビルドの詳細
ビルドの詳細は以下を参照。