2

アプリケーションを OCaml 4.02.3 から 4.03.0 に移植しています。

に次のものがあるとしますlexer.ml

type t = T [@@deriving sexp]

let () =
  sexp_of_t |> ignore;
  print_endline "hai"

次のように実行しようとしています。

ocamlbuild -use-ocamlfind -pkg ppx_sexp_conv -cflags '-w @a-4-31' lexer.byte --

しかし、次のエラーが発生します。

Warning 31: files lexer.cmo and /Users/vladimir/.opam/4.03.0+flambda/lib/ocaml/compiler-libs/ocamlcommon.cma(Lexer) both define a module named Lexer
File "_none_", line 1:
Error: Some fatal warnings were triggered (1 occurrences)

compiler-libsモジュールも呼び出されていることを理解していますがLexer、それは私のレクサーと衝突します:

  • コンパイラ ライブラリをリンクしようとしているわけではありません。で使用されていることは理解していますがppx_sexp_conv、これはプリプロセッサであるため、コンパイラ ライブラリをアプリにリンクする必要はありません。

  • 警告 31 は単なる警告であり、回避策として明示的に無視しようとしています ( -w @a-4-31) が、うまくいきません。以前は 4.02.3 で動作していました。

4

1 に答える 1