Unable to use ppx_compare, ppx_hash, ppx_type_conv in 4.05 utop

ppx
core
ppx_compare
base

#1

Hi,

I have upgraded to ocaml 4.05 and am attempting to use ppx_compare, ppx_hash and ppx_type_conv in utop via the following command,

#use topfind;;
#require "base";;
#require "ppx_hash";;

However, I am getting the error below
No such package: ppx_deriving - required by `ppx_hash.deprecated-ppx-method'

ppx_deriving is of course not yet available for 4.05. However, I seem to be able to compile my project successfully without ppx_deriving. I can load ppx_hash.expander in toploop however, the ppx doesn’t seem to be working.

I am getting similar issues with ppx_compare and ppx_type_conv. Is there some package(s) or some toploop invocations that I am missing?


#2

Yes, ppx_deriving is an optional dependency of ppx_hash (and many other packages) and it is picked if ppx_driver or custom_ppx predicates are not set. So the correct invocation would be:

#use topfind;;
#predicates "ppx_driver,custom_ppx";;
#require "base";;
#require "ppx_hash";;

#3

@ivg. Thanks for the explanation. I tried this with 4.05 and it seems to work correctly now.