[Rake-devel] Rake 0.9.3.beta.2 with -j option

Mark Watson watsonmw at gmail.com
Wed Oct 24 00:30:49 UTC 2012


With GNUMake it usually safe to assume that a project will *not* work
with -j by default.  Like you said there are probably a bunch of
subtle and not so subtle race conditions.  Even if the developers of a
makefile use -j, you can pretty sure it doesn't work for some build
targets.  So, yeah, I agree that would argue in favor of multitask and
the developer of the rakefile making explicit that they want to allow
a task to execute it's dependencies in parallel.

On 23 October 2012 16:05, Jim Weirich <jim.weirich at gmail.com> wrote:
>
> On Oct 23, 2012, at 4:54 PM, Mark Watson <watsonmw at gmail.com> wrote:
>
>> What about having the old code called by default and if you specify -j
>> the new parallel code is executed?  That way old rakefiles still work,
>> and new ones can take advantage of the -j feature
>
> So you check out a new project from GitHub and decide to run rake on it.  How do you decide if its safe to run with -j or not?  Try it and see?  Wait for subtle unreproducible race conditions to manifest?
>
>> (after all that was good enough for GNUmake).
>
> GNUMake mainly deals with shelling out to commands.  I suspect Rakefiles that mainly shell out to compilers and linkers will have little problem with -j.
>
> It's the Rakefiles that execute significant Ruby code in process that I'm concerned about.  And maybe I'm overly concerned about this issue, but I've dealt with real-time systems and multiple threads in a past life and know how tricky it can be to get things right.[1]
>
> --
> -- Jim Weirich
> -- jim.weirich at gmail.com
>
> [1] Ask me sometime about my 1 in a million failure.
>
>
>
> _______________________________________________
> Rake-devel mailing list
> Rake-devel at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rake-devel


More information about the Rake-devel mailing list