[Rake-devel] A handful of issues
James M. Lawrence
quixoticsycophant at gmail.com
Mon Jun 7 17:16:49 EDT 2010
On Mon, Jun 7, 2010 at 1:36 PM, Heath Kehoe <hkehoe at budcat.com> wrote:
> Instead of that change to out_of_date?(), I think there should be a
> different return value for Task#timestamp that indicates a missing
> file (instead of EARLY like it does now). Perhaps nil, or another
> 'special' time "LATE" which works like EARLY except LATE>time is
> always true.
Yes, my original fix was to replace EARLY with an analogous LATE
object in FileTask#timestamp. Although it worked, I was hesitant to
make a seemingly fundamental change (in the opposite direction, no
less). But it's possible that EARLY has been harmlessly wrong for six
> I don't think it's necessarily the case that dependencies should be
> strictly transitive. I think it's useful to have a task not execute
> if its immediate dependencies aren't updated, even if the
> dependencies' dependencies were (such as the example I mentioned in
> my previous message).
Until reading your last message, I hadn't seen that the first part of
your Drake patch was for non-transitivity. That's another way to
obtain consistent behavior which had not occurred to me.
Initially the "if needed?" line in your patch looks absurd because it
creates an interaction between nodes of an in-progress parallel
computation. But in this case only nodes which have finished running
are examined, so presumably their states are frozen.
Do you have this running on a large project, and does it appear to
work correctly? My change removes the old workaround, so you should
get latest with "gem install drake" or from github (though you'll have
to add the "if needed?" clause yourself, for the moment).
More information about the Rake-devel