10.1 概要

ocamlrun コマンドは、実際にバイトコードファイルを実行するバイトコードインタプリタ、メモリ割り当てとガーベジコレクタ、入出力のようなプリミティブ処理を実装する C 関数の集合のみっつの部分から構成されます。

ocamlrun の使い方は以下のようになります。

ocamlrun options bytecode-executable arg1 ... argn

第一引数は省略不可能で、実行可能なバイトコードを格納したファイルの名前として扱われます(このファイルはカレントディレクトリだけでなく実行可能プログラムの探索パスからも探索されます)。 残りの引数は Sys.argv の文字列の配列を介して Caml プログラムに渡されます。 この配列の第 0 要素は実行可能バイトコードファイルの名前になります。第 1 要素から第 n 要素までは、残りの引数 arg1 から argn になります。

8 章「バッチコンパイル(ocamlc で述べたように、 ocamlc コマンドで生成した実行可能バイトコードファイルは、それ自体が実行可能で、自身を解釈実行する ocamlrun コマンドを自分で自動的に起動します。 つまり、 caml.out を実行可能なバイトコードファイルとすると、

caml.out arg1 ... argn

は以下と全く同じように動作します。

ocamlrun caml.out arg1 ... argn

ただし、 caml.out を直接起動した場合には、 ocamlrun にオプションを渡すことはできないことに注意してください。

[注記]Windows:

Windows のバージョンによっては、実行可能バイトコードファイルの名前が .exe で終わっていないと単体で実行可能なファイルにはならないことがあります。 バイトコード実行ファイルには .exe 付きの名前を与えるようにすることが推奨されます。 ocamlc -o myprog ... ではなく ocamlc -o myprog.exe ... としてコンパイルしてください。