在定义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
的存在,但我找不到一个如何使用它的简单示例。
答案 0 :(得分:1)
当ocaml版本与库不兼容时,目前没有内置的方法可以让jbuilder打印一个温和的消息。
您应该能够在生成空ocaml_version
的规则节中使用.ml
,但在版本错误时会失败。但是要求这个功能的愿望应该更好。