dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #ocaml
gdd has quit [Quit: WeeChat 4.1.1]
alexherbo2 has quit [Ping timeout: 250 seconds]
chrisz has quit [Ping timeout: 252 seconds]
chrisz has joined #ocaml
<dh`>
is it possible to get the "(these modules) make inconsistent assumptions over (this module)" error from a clean non-parallel build?
<dh`>
(and if so, how?)
<dh`>
(I am getting this intermittently and non-reproducibly from CI runs that should not be able to have such failures)
<dh`>
for the record: if building a .ml file in a build dir, it is not sufficient to just output the corresponding .cmi file into the build dir. You need to copy the .mli file as well.
average has quit [Quit: Connection closed for inactivity]
alexherbo2 has joined #ocaml
<octachron>
dh`, like I stated previously, if you have a cmi il a different dirctory, you have to use `-cmi-file ...` when compiling the ml file. Otherwise, the compiler consider that ml and mli file are always bundled together in the same directory.
pi3ce has joined #ocaml
Serpent7776 has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<dh`>
no, you did not say that explicitly, and the cmi file was _not_ in a different directory
<dh`>
so it isn't that case
<dh`>
situation is: src/foo.mll src/foo.mli build/foo.ml build/foo.cmi, compile foo.ml and it ignores foo.cmi
<dh`>
it's easy to see why this would happen; the question is whether it's a bug
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<octachron>
That's the expected behavior.
dnh has joined #ocaml
<dh`>
so you have to tell it the cmi file is where it expects it to be?
pi3ce has quit [Read error: Connection reset by peer]
<dh`>
(it's just kinda surprising)
pi3ce has joined #ocaml
<octachron>
If the ml and mli file have been unpaired, one need to point the compiler to the existing cmi file when compiling the ml file.
<octachron>
The problem is that the compiler implicit works on compilation units (pair of .ml and .mli files) but try to reconstruct the pair from the state of the filesystem.
<octachron>
I agree that this is not a great behaviour.