27. dynlink ライブラリ:オブジェクトファイルの動的読み込みと動的リンク

dynlink ライブラリは型安全な動的読み込みと動的リンクをサポートします。 バイトコードプログラムからはバイトコードオブジェクトファイル(.cmo ファイルや .cma ファイル)を動的読み込み・動的リンクすることができ、ネイティブプログラムからはネイティブプラグイン(通常、 .cmxs ファイル)を動的読み込み・動的リンクすることができます。 型安全性の保証は、読み込まれるオブジェクトファイルのアクセスできるモジュールを実行中のプログラムの一部に制限し、実行中のプログラムと読み込まれるオブジェクトファイルがそれらのモジュールの同一のインタフェースに対してコンパイルされることを検査することにより行なわれています。 ネイティブコードでは、(モジュールをまたいだ最適化によるエラーを避けるために)幾分かの整合性検査も行ないます。 ネイティブプラグインを作成する際には .cmx ファイルを隠蔽し、メインプログラム内のモジュールの実装と独立させておくと便利なことがあるかもしれません。

dynlink ライブラリを使うプログラムはオブジェクトファイルや他のライブラリに加えて dynlink.cma をリンクする必要があります。