Robert Collins wrote: > It's actually a little harder than that. You need to either > a) limit the depth of recursion/stack growth > b) build a network of visited nodes and only recurse into unvisited > nodes. > > I've implemented a), which has the downside that in corner cases, (in > this case, a chain 6 requires: statements long) packages may not get > grabbed. Mind you, this means that of those 7 packages, the user must > select ONLY the first one, and no other packages can require: any > package further down the chain than the 2nd one. I.e. not much of an > issue :}. > > However b) is the proper solution IMO, but more time is needed to do it > right, so I'm leaving that for another day.
Hmmm...it seems like dependency graph traversal is a well-studied problem. Perhaps there's a GPL'ed library out there we can use? (since setup is independent of cygwin1.dll itself, we ARE allowed to use pure GPL, non-Red Hat owned code, right?) But, yah, leave it for later...(a) is good for now. --Chuck
