2

これは私の ocamlinit です:

(* Added by OPAM. *)
let () =
  try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH")
  with Not_found -> ()
;;

(* ## added by OPAM user-setup for ocamltop / base ## 3ec62baf6f9c219ae06d9814069da862 ## you can edit, but keep this line *)

#use "topfind";;
(* ## end of OPAM user-setup addition for ocamltop / base ## keep this line *)

#thread;;

(* #ppx "ppx-jane -as-ppx";; *)
#require "ppx_jane";;
#require "core.top";;
#require "async";;
#require "core_extended";;


open Core.Std;;

まさにこれで、私はこれをutopで取得します

utop # type test = char list [@@deriving show];;
Error: Cannot locate deriver show 

#ppxの代わりに で始まる行を使用すると#require "ppx_jane"、このエラーが発生します

utop # type test = char list [@@deriving show];;
Error: ppx_type_conv: 'show' is not a supported type type-conv generator

使用する ocamlinit をどのように設定すればよい[@@deriving show]ですか?

4

2 に答える 2

0

ピエールの提案に加えて、 の行が必要であることがわかりましたppx_jane

また、取得する#require "ppx_deriving.std"だけでなく、残りのものも使用しました。ppx_deriving.showord

ここに私の完全な ocamlinit があります

(* Added by OPAM. *)
let () =
  try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH")
  with Not_found -> ()
;;

(* ## added by OPAM user-setup for ocamltop / base ## 3ec62baf6f9c219ae06d9814069da862 ## you can edit, but keep this line *)
#use "topfind";;
(* ## end of OPAM user-setup addition for ocamltop / base ## keep this line *)

#thread;;

#require "ppx_jane";;
#require "core.top";;
#require "async";;
#require "core_extended";;

#require "ppx_deriving.std";;

open Core.Std;;
于 2016-12-28T15:21:50.393 に答える