2013-10-10 9 views
7

OCaml 4.00に追加されたAlain Frisch of Lexifi over a year ago for an alternative to camlp4 for writing sytnax extensions making use of the -ppx flagの提案がありました。当時、彼はまだやるべき仕事(属性、引用など)があったと述べていましたが、すでに使えるものでした。 OCaml 4.01はこのスタイルの構文拡張をサポートしていますか? camlp4の代わりにこのメカニズムを使用している人はいますか、camlp4はまだOCamlの構文拡張を書くのに推奨される方法ですか?OCamlの-ppx構文拡張の状態はどうですか?

答えて

10

"(属性、引用など)"に関する作業は、OCamlコンパイラソースのブランチの形で、拡張ポイントという名前でAlainによって行われました。この支店の進捗状況は、公衆wg-camlp4メーリングリストで広範に議論されましたが、4.01では統合されていませんでした。 4.01のリリース以来、それはtrunk(コンパイラのリファレンス開発ブランチ)に統合されているので、4.02で利用できるはずです(メジャーバージョンは現在毎年リリースされる傾向にあります)。

アランは延長ポイントの書類の形式をtrunk/experimental/frisch/extension_points.txtにしています。 すべて Camlp4のユースケースは明らかですが、依然としてその大部分がカバーされています。むしろそれを使用するかどうかは、個人的な決定をすることです。もう少し面倒な構文では、ツールやその他の拡張機能との容易なデプロイメントと相互運用性が得られるという約束があります。

4.00または4.01から、-ppxは構文拡張に適合していないため、構文的に有効なOCamlコードのみを処理できます。技術的には、既存のOCaml構文を覆して新しい意味を加えることは可能ですが、これに対してお勧めします。構文拡張のために使用したい場合は、4.02を待つべきです。

関連する問題