【问题标题】:What's the state of -ppx syntax extensions for OCaml?OCaml 的 -ppx 语法扩展的状态如何?
【发布时间】:2013-10-18 22:05:33
【问题描述】:

在 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 camlp4


    【解决方案1】:

    “(属性、引用等)”的工作由 Alain 以 OCaml 编译器源的一个分支的形式完成,名为扩展点。这个分支的进展在公共wg-camlp4邮件列表上进行了广泛的讨论,但没有集成到 4.01 中。自 4.01 发布以来,它已集成到 trunk(编译器的参考开发分支)中,因此它应该可用于 4.02(请注意,目前主要版本倾向于每年发布)。

    Alain 在trunk/experimental/frisch/extension_points.txt 中维护了一种用于扩展点的文档形式。它显然没有涵盖 所有 Camlp4 的用例,但仍然是其中的很大一部分。您是否愿意使用它是个人决定;承诺是稍微笨拙的语法为您带来更轻松的部署和与工具和其他扩展的互操作性。

    从 4.00 或 4.01 开始,-ppx 不适用于语法扩展,您只能处理(并且可能过滤/转换)语法有效的 OCaml 代码。技术上可以颠覆现有的 OCaml 语法以添加新的含义,但我不建议这样做。如果你想用它进行语法扩展,你应该等待 4.02。

    【讨论】:

      猜你喜欢
      • 2016-10-15
      • 2015-09-01
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      相关资源
      最近更新 更多