utop error: No such package: sexplib.syntax - required by `core.syntax'
utop error: No such package: sexplib.syntax - required by `core.syntax'
我正在尝试按照 Real World Ocaml 说明 here 设置 emacs ocaml 环境,但是当我启动 utop 时出现错误:
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 不存在。
有谁知道如何解决这个问题?
我怀疑这是一个错误,由核心套件最近从 camlp4 过渡到 ppx 引起。它应该在 113.24.01
中修复,因此请确保您有
opam update
opam upgrade
然后安装最新版本:
opam install core.113.24.01
如果这没有帮助,那么另一个选择是在转换之前回退到旧版本,例如
opam install core.113.00.00
为了防止库自动升级,可以pin一下:
opam pin add core 113.00.00
从 113.24.00 版本开始不再支持 core.syntax
。我做了一个核心版本 (113.24.02) 的小版本以使其生效。
您现在应该使用 ppx_jane
。它相当于 Jane Street ppx 重写器的 core.syntax
。 Real World OCaml 说明已更新。
您可以将 ppx_jane
作为常规 findlib 包使用或直接使用:
(* Regular findlib package *)
# #require "ppx_jane";;
(* Directly *)
# #ppx "ppx-jane -as-ppx";;
上面没有提到的一个方面是安装 opam 包 sexplib
不足以获取 findlib sexplib.syntax
,即使是 113.00.00 或更早的版本:一定要还要安装 opam 包 type_conv
我正在尝试按照 Real World Ocaml 说明 here 设置 emacs ocaml 环境,但是当我启动 utop 时出现错误:
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 不存在。
有谁知道如何解决这个问题?
我怀疑这是一个错误,由核心套件最近从 camlp4 过渡到 ppx 引起。它应该在 113.24.01
中修复,因此请确保您有
opam update
opam upgrade
然后安装最新版本:
opam install core.113.24.01
如果这没有帮助,那么另一个选择是在转换之前回退到旧版本,例如
opam install core.113.00.00
为了防止库自动升级,可以pin一下:
opam pin add core 113.00.00
core.syntax
。我做了一个核心版本 (113.24.02) 的小版本以使其生效。
您现在应该使用 ppx_jane
。它相当于 Jane Street ppx 重写器的 core.syntax
。 Real World OCaml 说明已更新。
您可以将 ppx_jane
作为常规 findlib 包使用或直接使用:
(* Regular findlib package *)
# #require "ppx_jane";;
(* Directly *)
# #ppx "ppx-jane -as-ppx";;
上面没有提到的一个方面是安装 opam 包 sexplib
不足以获取 findlib sexplib.syntax
,即使是 113.00.00 或更早的版本:一定要还要安装 opam 包 type_conv