Subject: [bug#43745] [PATCH 04/27] gnu: ocaml-migrate-parsetree: Update to 1.7.3.

From: Julien Lepiller <[email-masked]>
Date: Tue, 13 Oct 2020 11:24:12 -0400

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 <[email-masked]> a écrit :
>Hi Julien,
>
>Wow!  Thank you for this detailed investigation.
>
>
>On Tue, 13 Oct 2020 at 04:03, Julien Lepiller <[email-masked]>
>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é.