Re: [racket-dev] Multiple 'raco make' processes

2014-12-09 Thread Robby Findler
I think they can stomp on each other and you can get inconsistent results,
theoretically.

Robby

On Tuesday, December 9, 2014, Dan Liebgold dan.liebg...@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.liebg...@gmail.com
 javascript:_e(%7B%7D,'cvml','dan.liebg...@gmail.com');]

_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Multiple 'raco make' processes

2014-12-09 Thread Matthew Flatt
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 ro...@eecs.northwestern.edu
 wrote:
 
  Ah sorry: meant to add: did you try the -j flag?
 
 
  On Tuesday, December 9, 2014, Robby Findler ro...@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.liebg...@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.liebg...@gmail.com]
 
 
 
 
 -- 
 Dan Liebgold[dan.liebg...@gmail.com]
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Multiple 'raco make' processes

2014-12-09 Thread Robby Findler
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.mccar...@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 mfl...@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 ro...@eecs.northwestern.edu
 wrote:

  Ah sorry: meant to add: did you try the -j flag?
 
 
  On Tuesday, December 9, 2014, Robby Findler ro...@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.liebg...@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.liebg...@gmail.com]
 
 


 --
 Dan Liebgold[dan.liebg...@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.
   - DC 64:33
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Multiple 'raco make' processes

2014-12-09 Thread Matthew Flatt
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.mccar...@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 mfl...@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 
  ro...@eecs.northwestern.edu
  wrote:
 
   Ah sorry: meant to add: did you try the -j flag?
  
  
   On Tuesday, December 9, 2014, Robby Findler 
   ro...@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.liebg...@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.liebg...@gmail.com]
  
  
 
 
  --
  Dan Liebgold[dan.liebg...@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.
- DC 64:33
  _
Racket Developers list:
http://lists.racket-lang.org/dev
_
  Racket Developers list:
  http://lists.racket-lang.org/dev