Your existing build was built unreproducibly. You need to remove it with guix gc first. Then you can run --rounds=2. Alternatively add "-j1" as an argument to dune (as #:build-flags). That will change the output, ensuring you don't compare with an unreproducible build. Le 13 octobre 2020 08:09:55 GMT-04:00, zimoun a écrit : >Hi Julien, > >Wow! Thank you for this detailed investigation. > > >On Tue, 13 Oct 2020 at 04:03, Julien Lepiller >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. > > >Cheers, >simon -- Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.