IoPLMaterials

HACKING

OCaml 処理系のインストール

この科目では実装言語として OCaml を使用する。演習問題を進めるためには、自分のマシンに OCaml プログラムの開発環境を整えることが必須である。以下では、OCaml の開発環境をセットアップする方法を説明する。

1. opam をインストール

このガイドでは opam 2.2以上を前提としている。2.2よりも古い opam バージョンをインストールしている場合は更新する必要がある。

Unix

bash -c "sh <(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)"

Windows

Invoke-Expression "& { $(Invoke-RestMethod https://raw.githubusercontent.com/ocaml/opam/master/shell/install.ps1) }"

2. opam の初回セットアップ

opam init --bare --no-setup

opam init コマンドを実行し、opam の初回セットアップを実行する。

3. リポジトリをクローン

git clone git@github.com:kuis-isle3sw/IoPLMaterials.git
cd IoPLMaterials

SSH キーを使った方法でリポジトリをクローンすることが出来ない場合はこちら を参照。

4. direnv をセットアップ

direnv は現在のディレクトリに基づいて環境変数を設定出来るツールであり、opam スイッチの管理や、プロジェクト固有の環境のセットアップに特に役立つ。

  1. direnv をインストール
    • https://direnv.net/docs/installation.html
  2. direnv をセットアップ
    • https://direnv.net/docs/hook.html
  3. .envrc を許可
    • direnv allow を実行。
    • クローンしたリポジトリ内にある .envrc を許可するまで direnv.envrc の中身を実行しない。
      • 主にセキュリティのため。

必須のツールではないが、これがあると作業が楽になる。

5. ローカルスイッチを作成

opam switch create . 5.2.0 --no-install

opam switch create [スイッチ名] [コンパイラ] コマンドを実行し、opam ローカルスイッチを作成する。この時、スイッチ名に絶対または相対のディレクトリを指定すると opam ローカルスイッチが作成される。

詳細は man opam-switch を実行するとよい。

6. 必要な opam パッケージをインストール

opam install . --deps-only --with-dev-setup

opam install [パッケージ名] を実行し、必要な opam パッケージをインストールする。この際、パッケージ名に *.opam ファイル、もしくは *.opam ファイルを含むディレクトリを指定する事も可能であり、この場合はディレクトリ内に存在する *.opam ファイルの中身に基づいて opam パッケージがインストールされる。

詳細は man opam-install を実行するとよい。

7. ビルド

direnv を使用している場合

dune build

direnv を使用していない場合

opam exec -- dune build

エディタのセットアップ

VSCode

推奨するのは VSCode と、その拡張機能の OCaml Platform の組み合わせである。

クローンしたリポジトリに移動し、次のコマンドを実行すると VSCode が起動される。

code .

code コマンドが存在しないとエラーが出る場合はこちらを参照。

便利情報

Acronyms