Here's a mind twister: Installing deps from jscoq.opam
installs js_of_ocaml-compiler.3.9.0
.
Then, installing elpi.1.13.1
(for coq-elpi
) causes OPAM to downgrade js_of_ocaml-compiler
to 3.7.1
.
Haven't been able to figure out why :confused: Can somebody help?
Trying blind: ppxlib
?
Now after looking at opam, I think I won :) XD
Yeah I was suspecting ppxlib
; but can you explain why? I haven't been able to track the dep chain between ppxlib
and js_of_ocaml-compiler
.
elpi requires ppxlib < 0.15 , however js_of_ocaml-compiler requires ppxlib >= 0.15 ; so this is why opam tries to downgrade jsoo
this is due to the ppx 2.0 API
eventually elpi should be updated to support ppxlib >= 0.15
I think the deps are clear
Ah yes I was looking at the deps of 3.7.1 (which opam installed ;) ) which is why I did not see the ppxlib
dep.
The weird thing is that elpi.1.11.2
is happy with ppxlib.0.15.0
.
Likely the < 0.15 constraint was added by some automatic tool
it is common in opam world to add upper constraints when a new package break existing
Is the migration path hard? If not I can give a look and make a new elpi 1.13 release
if it works you can always use --ignore-constrains-on
@Enrico Tassi no idea, I think it depends on what you are using
some APIs are the same, some not
I'd say nothing fancy...
Yeah so maybe that is why old elpi works, maybe the new one is failing on something silly
and the constraint was added after some CI failed
yeah ppx 2.0 another pain-in-the-ass migration
:joy: :joy: :joy: :joy: :joy: the joy of software development
the changelog for ppxlib does not seem huge
I'll give it a shot
actually, if you remove the dependency on ppxlib, elpi will compile
it has a local copy of the pre-processed files
dune will select the copy if ppx is not available
(that may be your quick fix)
I've never removed the dep from the opam package, mainly to get CI tell me when things break
maybe I should make it optional
Great!
By the way I was writing an elpi overlay, installed 1.13.1 ignore the ppxlib constraint and things seem fine
at least at compile time
I think I'll make a 1.13.2 using https://github.com/LPCIC/elpi/pull/100
and yes, the problem was in ppxfindcache which is only used for building
that PR removes it
Last updated: Jun 01 2023 at 12:01 UTC