[racket-dev] Multiple 'raco make' processes

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Tue Dec 9 20:40:32 EST 2014

We do protect against those kinds of problems (even on Windows, where
it isn't trivial).

At Tue, 9 Dec 2014 19:00:09 -0600, Robby Findler wrote:
> 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.