Subject: bug#20272: Support reproducible builds

From: Andy Wingo <[email-masked]>
Date: Mon, 06 Mar 2017 21:13:00 +0100

Hi,

On Sun 05 Mar 2017 21:49, [email-masked] (Ludovic Courtès) writes:

> Andy Wingo <[email-masked]> skribis:
>
>> On Thu 22 Dec 2016 00:53, [email-masked] (Ludovic Courtès) writes:
>>
>>> +(define (module-generate-unique-id! m)
>>> +  (let ((i (module-next-unique-id m)))
>>> +    (set-module-next-unique-id! m (+ i 1))
>>> +    i))
>>
>> This introduces a race condition when expanding from multiple threads at
>> once.  Any plan here?
>
> Good point!  We could grab a per-module mutex for that, though that’s
> again a fat mutex.
>
> Thoughts?

I would use atomic boxes if possible, but they are in another module :/
Even mutexes aren't directly available in boot-9 any more... Alternately
we can make a new primitive for module-generate-unique-id! which can
obviously use C.  That's probably the easiest option, sadly!

Andy