server code with client code, both seem to have a different Eliommod_parameters module

Right, thanks! This explains it. There are two Eliommod_parameters interfaces. We have client/eliom_pervasives.cmi compiled agains the client one, and _server/foo.cmi compiled against the server one. And then I'm mixing them somehow.

Usually in these cases it's a good idea to have a look at the hash of the inconsistent .cmi files with ocamlobjinfo and try to locate the corresponding .cmi in the included dirs to get a better idea of what's going on.

Great suggestion. I'll try this.



On Mon, Apr 27, 2015 at 11:02 AM, Daniel Bünzli <daniel.buenzli@erratique.ch> wrote:
> It's Eliom related, though I don't know why that would matter.
>
> # Error: The files ~/.opam/4.02.1/lib/eliom/client/eliom_pervasives.cmi
> # and ../_server/foo.cmi make inconsistent assumptions
> # over interface Eliommod_parameters

Don't know anything about eliom but it seems that you are trying to compile server code with client code, both seem to have a different Eliommod_parameters module. I don't know if the Eliommod_parameters cmi are supposed to be the same in both cases (if there's a discrepancy that didn't use to exist it may be due to compiling with `-keep-locs` which could result in problems along the line of [1,2] but I don't know how eliom's source is structured).

Usually in these cases it's a good idea to have a look at the hash of the inconsistent .cmi files with ocamlobjinfo and try to locate the corresponding .cmi in the included dirs to get a better idea of what's going on.

Best,

Daniel

[1] https://github.com/ocamllabs/ocaml-ctypes/issues/283
[2] http://caml.inria.fr/mantis/view.php?id=6311#c13598