5

リスト内包表記を使用する OCaml コードのビルドから、より少ないビルド オプションで_tagsファイルを使用して実行できます。ocamlbuild

$ cat _tags
<**/*> : package(camlp4),syntax(camlp4o),package(pa_comprehension)

Batteries の紹介から、Batteries パッケージを使用するには _tags ファイルも必要です。

<*>: package(batteries)

<**/*>2 番目の例では を使用しているのに、最初の例では を使用しているのはなぜ<*>ですか? 一般に、ocamlbuild の _tags ファイルの目的は何ですか? 良いチュートリアルはありますか?

4

1 に答える 1

6

_tagsファイルに加えて、コンパイル システムのmyocamlbuild.mlルートを形成します。ocamlbuild

ocamlbuild何でもコンパイルできる非常に汎用的なツールです。これは、ユーザーが設定した目標に従って、目標を満たすことができる解を見つけるソルバーによって駆動されます。解決策は、ファイルに適用される一連のルールです。ファイルはタグでタグ付けできます。タグはルールを変更できます。たとえば、プロファイリングの有効化やライブラリへのリンクなどのフラグを追加できます。

_tagsファイルは、ファイルにタグを割り当てるメカニズムを提供し、単純な文法を備えています。

 pattern ":" tag "," {tag}.

の左側にあるの:は、実際にはパターンまたは正規表現です。式に一致する各ファイルには、 の右側にあるすべてのタグが割り当てられます:

<**/*>このフォルダー内のすべてのファイルとすべてのサブフォルダーには、次のショートカットがあることを意味しますtrue<*>このフォルダーのすべてのファイルを意味します (サブフォルダーに降りることはありません)。他の例は<*.ml><*.cmx>または<**/*.cma>(ところでor、パターンを構築するためにも使用できます)。

OCamlbuild はOCaml Manualに文書化されています。また、多くの情報を含む古い wikiのダンプもあります。

しかし面白いのは、通常、OCaml を使用するためにこれを知る必要がないことです。OASISすべてのタスクを自動化_tagsし、シンプルで高レベルの定義からファイルを作成するツールがあります。

于 2015-02-27T04:15:59.600 に答える