[racket-dev] Multiple 'raco make' processes

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Tue Dec 9 20:00:09 EST 2014

I think even stranger things can happen because of race-conditions at
the filesystem level (altho we could probably protect against that if
we wanted).

Robby


On Tue, Dec 9, 2014 at 6:22 PM, Jay McCarthy <jay.mccarthy at gmail.com> wrote:
> Specifically, you can get errors like "Called export 72 and expected
> set->list but got list->set. Chaos!"
>
> Jay
>
> On Tue, Dec 9, 2014 at 3:09 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
>> Unfortunately, the bytecode compiler is not completely deterministic.
>> Generating the same ".zo" file from the same source is likely to
>> produce different bytes each time. The root causes are various counters
>> and hash orders, and I hope to fix that eventually. For now, since the
>> generated bytecode is different, there can be inconsistencies instead
>> of just duplicated work.
>>
>> At Tue, 9 Dec 2014 11:54:16 -0800, Dan Liebgold wrote:
>>> If the multiple 'raco make's would produce the same results, then there
>>> should be no inconsistency, just duplicate work, right?
>>>
>>> And my use case is a bit different... I need to spawn the multiple 'raco
>>> makes', rather than have raco make spawn multiple racket instances (via the
>>> -j flag). Although this particular setup will bear some examination.
>>>
>>> On Tue, Dec 9, 2014 at 11:47 AM, Robby Findler <robby at eecs.northwestern.edu>
>>> wrote:
>>>
>>> > Ah sorry: meant to add: did you try the -j flag?
>>> >
>>> >
>>> > On Tuesday, December 9, 2014, Robby Findler <robby at eecs.northwestern.edu>
>>> > wrote:
>>> >
>>> >> I think they can stomp on each other and you can get inconsistent
>>> >> results, theoretically.
>>> >>
>>> >> Robby
>>> >>
>>> >> On Tuesday, December 9, 2014, Dan Liebgold <dan.liebgold at gmail.com>
>>> >> wrote:
>>> >>
>>> >>> If I have multiple instances of raco make running and some of the files
>>> >>> they are checking/rebuilding are shared across the instances... what
>>> >>> happens?  Does raco make have lock to ensure no contention? Or does each
>>> >>> process potentially redo some work?
>>> >>>
>>> >>> --
>>> >>> Dan Liebgold    [dan.liebgold at gmail.com]
>>> >>>
>>> >>
>>>
>>>
>>> --
>>> Dan Liebgold    [dan.liebgold at gmail.com]
>>> _________________________
>>>   Racket Developers list:
>>>   http://lists.racket-lang.org/dev
>> _________________________
>>   Racket Developers list:
>>   http://lists.racket-lang.org/dev
>
>
>
> --
> Jay McCarthy
> http://jeapostrophe.github.io
>
>            "Wherefore, be not weary in well-doing,
>       for ye are laying the foundation of a great work.
> And out of small things proceedeth that which is great."
>                           - D&C 64:33
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev

Posted on the dev mailing list.