在jbuilder包中需要最小的OCaml版本

时间:2017-11-29 17:20:03

标签: ocaml

在定义jbuild规范时如何需要特定的OCaml版本?

例如,假设我有这个文件:

(jbuild_version 1)

(library
 ((name myjson)
  (public_name myjson)
  (synopsis "My version of json")
  (libraries (yojson))))

但后来我想使用Unix.unsafe_environment,这在OCaml< 4.06。如何将此约束添加到包中,以便有人尝试使用较旧的OCaml编译它将得到一个很好的错误消息(而不是更隐秘的Error: Unbound value Unix.unsafe_environment)?

jbuild specification确实提到了变量ocaml_version的存在,但我找不到一个如何使用它的简单示例。

1 个答案:

答案 0 :(得分:1)

当ocaml版本与库不兼容时,目前没有内置的方法可以让jbuilder打印一个温和的消息。

您应该能够在生成空ocaml_version的规则节中使用.ml,但在版本错误时会失败。但是要求这个功能的愿望应该更好。