2016-02-19 46 views
3

我试图建立继真实世界ocaml的说明here Emacs的ocaml的环境,但是当我开始我UTOP得到所需要的错误:UTOP错误:没有这样的包:sexplib.syntax - 用'core.syntax”

No such package: sexplib.syntax - required by `core.syntax' 

如果我运行:ocamlfind list | grep sexp在命令行我得到:

ppx_sexp_conv  (version: 113.24.00) 
ppx_sexp_conv.expander (version: 113.24.00) 
ppx_sexp_conv.expander.for_ppx_deriving (version: n/a) 
ppx_sexp_message (version: 113.24.00) 
ppx_sexp_value  (version: 113.24.00) 
sexplib    (version: 113.24.00) 
sexplib.num   (version: 113.24.00) 
sexplib.unix  (version: 113.24.00) 

这在我的新手眼睛暗示sexplib.syntax不存在。

有谁知道如何解决这个问题?

回答

4

我怀疑这是一个错误,最近由核心套件从camlp4过渡到ppx。它应固定在113.24.01,所以请确保您有

opam update 
opam upgrade 

,然后安装最新版本:

opam install core.113.24.01 

如果这样没有帮助,那么其他的选项,将回退到旧版本,在转换之前,像

opam install core.113.00.00 

为了防止库的自动升级,可以用别针把它:

opam pin add core 113.00.00 
+0

thnx - 更新/升级固定它。 – BillyBadBoy

+0

即使更新/升级后,我仍然有这个问题:'ocamlfind list | grep sexplib'没有列出sexplib.syntax – Marko

+0

我尝试安装核心113.00.00第一 - 也许这是相关的? – BillyBadBoy

2

core.syntax从113.24.00版本开始不再支持。我做了一个小版本的核心(113.24.02)以使其生效。

您现在应该使用ppx_jane。它相当于Jane Street ppx重写器的core.syntax真实世界OCaml说明已更新。

可以使用ppx_jane或者作为常规findlib包装或直接:

(* Regular findlib package *) 
# #require "ppx_jane";; 
(* Directly *) 
# #ppx "ppx-jane -as-ppx";; 
+0

我安装了ppx_jane和sexplib,但是sitll无法进行如下工作:type t = {foo:int; bar:float}与sexp ;;'使用core-0.9.1 – krokodil

1

尚未上述mentionned一个方面是安装OPAM包sexplib是不是足以让findlib sexplib.syntax,甚至与113.00.00或更早版本:一定还要安装opam软件包type_conv