On Mon, Jun 7, 2010 at 1:36 PM, Heath Kehoe <[email protected]> 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 years.
> 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). _______________________________________________ Rake-devel mailing list [email protected] http://rubyforge.org/mailman/listinfo/rake-devel
