Closed Blaisorblade closed 6 years ago
The error message is about a value that is generated. Can you try the following command and see what it prints:
ocamlfind ppx_tools/genlifter Pervasives.format6
Thanks for the prompt answer. After further investigation, I have some evidence suggesting you should depend on ppx_tools.0.99.3
, because that command fails with version 0.99.2
. Below's the actual evidence.
Here's the output when ppx_custom_printf
installs correctly (after the upgrade I mentioned above):
https://gist.github.com/Blaisorblade/16f37ae045862c22f54e.
It does defines class lifter
.
This command reminds me that ppx_custom_printf
depends on ppx_tools
without a version range, and that the upgrade that solved the problem also upgraded ppx_tools:
upgrade ppx_tools 0.99.2 to 0.99.3
So, I ran opam install ppx_tools.0.99.2
, and verified that ppx_custom_printf
fails again to build :smile: . And the command you gave plainly fails:
$ ocamlfind ppx_tools/genlifter Pervasives.format6
** fatal error: File "genlifter.ml", line 110, characters 26-32: Assertion failed
And the build failure looks very similar:
#=== ERROR while installing ppx_custom_printf.113.24.00 =======================#
# opam-version 1.2.2
# os darwin
# command make
# path /Users/pgiarrusso/.opam/system/build/ppx_custom_printf.113.24.00
# compiler system (4.02.3)
# exit-code 2
# env-file /Users/pgiarrusso/.opam/system/build/ppx_custom_printf.113.24.00/ppx_custom_printf-94081-a5e08f.env
# stdout-file /Users/pgiarrusso/.opam/system/build/ppx_custom_printf.113.24.00/ppx_custom_printf-94081-a5e08f.out
# stderr-file /Users/pgiarrusso/.opam/system/build/ppx_custom_printf.113.24.00/ppx_custom_printf-94081-a5e08f.err
### stdout ###
# [...]
# /Users/pgiarrusso/.opam/system/bin/ocamlfind ocamlc -c -g -annot -bin-annot -no-alias-deps -thread -I format-lifter -package ppx_tools.metaquot -package ppx_sexp_conv.expander -
package ppx_driver -package ppx_core -predicates ppx_driver -w -40 -I src -I format-lifter -o src/ppx_custom_printf.cmi src/ppx_custom_printf.mli
# + /Users/pgiarrusso/.opam/system/bin/ocamlfind ocamlc -c -g -annot -bin-annot -no-alias-deps -thread -I format-lifter -package ppx_tools.metaquot -package ppx_sexp_conv.expander
-package ppx_driver -package ppx_core -predicates ppx_driver -w -40 -I src -I format-lifter -o src/ppx_custom_printf.cmi src/ppx_custom_printf.mli
# findlib: [WARNING] Interface topdirs.cmi occurs in several directories: /usr/local/lib/ocaml/compiler-libs, /usr/local/lib/ocaml
# /Users/pgiarrusso/.opam/system/bin/ocamlfind ocamldep -package ppx_tools.metaquot -package ppx_sexp_conv.expander -package ppx_driver -package ppx_core -predicates ppx_driver -m
odules src/ppx_custom_printf.ml > src/ppx_custom_printf.ml.depends
# /Users/pgiarrusso/.opam/system/bin/ocamlfind ocamlc -c -g -annot -bin-annot -no-alias-deps -thread -I format-lifter -package ppx_tools.metaquot -package ppx_sexp_conv.expander -
package ppx_driver -package ppx_core -predicates ppx_driver -w -40 -I src -I format-lifter -o src/ppx_custom_printf.cmo src/ppx_custom_printf.ml
# + /Users/pgiarrusso/.opam/system/bin/ocamlfind ocamlc -c -g -annot -bin-annot -no-alias-deps -thread -I format-lifter -package ppx_tools.metaquot -package ppx_sexp_conv.expander
-package ppx_driver -package ppx_core -predicates ppx_driver -w -40 -I src -I format-lifter -o src/ppx_custom_printf.cmo src/ppx_custom_printf.ml
# findlib: [WARNING] Interface topdirs.cmi occurs in several directories: /usr/local/lib/ocaml/compiler-libs, /usr/local/lib/ocaml
# File "src/ppx_custom_printf.ml", line 220, characters 10-47:
# Error: Unbound class Ppx_format_lifter.lifter
# Command exited with code 2.
### stderr ###
# W: Cannot find source file matching module 'Ppx_format_lifter' in library ppx_format_lifter
# W: Cannot find source file matching module 'Ppx_format_lifter' in library ppx_format_lifter
# E: Failure("Command ''/usr/local/bin/ocamlbuild' format-lifter/ppx_format_lifter.cma format-lifter/ppx_format_lifter.cmxa format-lifter/ppx_format_lifter.a format-lifter/ppx_for
mat_lifter.cmxs src/ppx_custom_printf.cma src/ppx_custom_printf.cmxa src/ppx_custom_printf.a src/ppx_custom_printf.cmxs as_ppx/ppx.native -use-ocamlfind -tag debug' terminated wit
h error code 10")
# make: *** [build] Error 1
Thanks for looking into this, I created a PR to add the version constraint
I got a repeatable error while installing
ppx_custom_printf.113.24.00
(the latest version), which was fixed byopam upgrade
, so I conjecture there's some undeclared dependency (or some missing version restriction). But I'm a newbie with opam, so I'll let you judge. Details below.While I ran
opam upgrade core core_kernel merlin utop core_bench core_extended async
, on Ocaml 4.02.3, I got the following:Again, after that, I ran
opam install ppx_custom_printf
, and got the following (full log now):This was fixed by the following upgrade, so it seems likely to be a dependency issue:
Disclaimer: while I understand functional programming in other languages, I'm a relative newbie in actually using Ocaml, and I might well be doing something wrong (I've done multiple upgrades and downgrades, if I was using Haskell's
cabal-install
everything would have exploded multiple times).