[racket-dev] Multiple 'raco make' processes

2014-12-09 Thread Dan Liebgold
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]
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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  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
> ]
>
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-12-09 Thread Robby Findler
Ah sorry: meant to add: did you try the -j flag?

On Tuesday, December 9, 2014, Robby Findler 
wrote:

> I think they can stomp on each other and you can get inconsistent results,
> theoretically.
>
> Robby
>
> On Tuesday, December 9, 2014, Dan Liebgold  > 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]
>>
>
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-12-09 Thread Dan Liebgold
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 
wrote:

> Ah sorry: meant to add: did you try the -j flag?
>
>
> On Tuesday, December 9, 2014, Robby Findler 
> wrote:
>
>> I think they can stomp on each other and you can get inconsistent
>> results, theoretically.
>>
>> Robby
>>
>> On Tuesday, December 9, 2014, Dan Liebgold 
>> 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


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 
> wrote:
> 
> > Ah sorry: meant to add: did you try the -j flag?
> >
> >
> > On Tuesday, December 9, 2014, Robby Findler 
> > wrote:
> >
> >> I think they can stomp on each other and you can get inconsistent
> >> results, theoretically.
> >>
> >> Robby
> >>
> >> On Tuesday, December 9, 2014, Dan Liebgold 
> >> 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 Jay McCarthy
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  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 
>> wrote:
>>
>> > Ah sorry: meant to add: did you try the -j flag?
>> >
>> >
>> > On Tuesday, December 9, 2014, Robby Findler 
>> > wrote:
>> >
>> >> I think they can stomp on each other and you can get inconsistent
>> >> results, theoretically.
>> >>
>> >> Robby
>> >>
>> >> On Tuesday, December 9, 2014, Dan Liebgold 
>> >> 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."
  - D&C 64:33
_
  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  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  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 
>>> wrote:
>>>
>>> > Ah sorry: meant to add: did you try the -j flag?
>>> >
>>> >
>>> > On Tuesday, December 9, 2014, Robby Findler 
>>> > wrote:
>>> >
>>> >> I think they can stomp on each other and you can get inconsistent
>>> >> results, theoretically.
>>> >>
>>> >> Robby
>>> >>
>>> >> On Tuesday, December 9, 2014, Dan Liebgold 
>>> >> 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."
>   - D&C 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  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  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 
> >>> 
> >>> wrote:
> >>>
> >>> > Ah sorry: meant to add: did you try the -j flag?
> >>> >
> >>> >
> >>> > On Tuesday, December 9, 2014, Robby Findler 
> >>> > 
> >>> > wrote:
> >>> >
> >>> >> I think they can stomp on each other and you can get inconsistent
> >>> >> results, theoretically.
> >>> >>
> >>> >> Robby
> >>> >>
> >>> >> On Tuesday, December 9, 2014, Dan Liebgold 
> >>> >> 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."
> >   - D&C 64:33
> > _
> >   Racket Developers list:
> >   http://lists.racket-lang.org/dev
_
  Racket Developers list:
  http://lists.racket-lang.org/dev