[Rake-devel] recursive task invocation
Ittay Dror
ittay.dror at gmail.com
Wed Aug 20 02:44:21 EDT 2008
So the previous ping generated some feedback, but I'm still not sure if
this is on the roadmap or not. Jim?
Ittay
Ittay Dror wrote:
> Is there no interest in the suggestion made below?
>
> Ittay Dror wrote:
>> Hi,
>>
>> I'm running a Buildr build and after 20 recursive prerequisites
>> Ruby's call stack is exhausted and I get a segmentation fault. The
>> number of modules and dependencies is large, so I can't decrease the
>> prerequisites.
>>
>> How about doing an iterative DFS search on the prerequisites to order
>> them and then invoke them according to order?
>>
>> There are a few other benefits, besides not needing recursion:
>> 1. it allows to find circular dependencies before starting the
>> invocation
>> 2. it allows for rake to utilize threads to invoke the list of tasks
>> (assuming actions don't conflict)
>>
>> Note that currently tasks can "cheat" and add prerequisites lazily
>> when invoked by overriding invoke_prerequisites. This can be achieved
>> with the above suggestion by letting them override the prerequisites
>> accessor.
>>
>> Drawbacks:
>> This doesn't allow for a task's action to add prerequisites to
>> sibling tasks during the invocation chain (unless an API is provided
>> to allow changing the invocation list during invocation)
>>
>> What do you think? I don't mind implementing this, but obviously it
>> is a big change.
>> Ittay
>>
>
--
--
Ittay Dror <ittay.dror at gmail.com>
More information about the Rake-devel
mailing list