Le 13 octobre 2020 08:09:55 GMT-04:00, zimoun <firstname.lastname@example.org> a écrit :
Wow! Thank you for this detailed investigation.
On Tue, 13 Oct 2020 at 04:03, Julien Lepiller <email@example.com> wrote:
So, my hypothesis is that dune is building files out of order, but lets
ocaml read the generated cmi files. Since the build is not in order,
when it builds the same file in two different builds, the cmi are not
the same and the result is different. Since dune will always use all
my cores, I used a trick I learned from LFS:
echo 0 > /sys/devices/system/cpu/cpu1/online
(and similar for every other core, except cpu0)
This way, I have a single-core machine and, hopefully, dune runs
sequentially. This time, --rounds=2 passed (after removing the existing
store item of course).
Where do you this “echo 0 > /sys/devices/system/cpu/cpu1/online“ to
disable all except cpu0? Because, I have tried as root on my 4 cpu
machine and then “./pre-inst-env guix build ocaml-migrate-parsetree
–no-grafts –check“ still returns an error.