On Friday 05 December 2003 10:58, George Shapovalov wrote: > Sorry for the crosspost, but it looks like this topic is approximately > equivalently active on either lis, and I did not find the "submission > instructions" perhaps because its not yet time for design submits :).. Some words about your page, Prolog != AI AI != undeterministic actually most AI research is into the area of deterministic approaches. Most undeterministic behaviour which is not in games (where you want undeterministic behaviour) can be found into trying to trying to get a low complexity for problems that have natural big complexity. In this way undeterministic means that in some cases the tricks don't work and you get the big complexity (hell even caching is undeterministic in the same way). prolog is very good at graph traversal tasks (which is what AI in many cases involves and why in AI prolog is used a lot) as the mode of operation is basically a depth-first backtracking search algorithm (about 10 lines of pseudocode). For that reason I think it is a good candidate for the new and improved dependency algorithm. While prolog is very good for such tasks I don't think it is suited to implement the core of portage. This is not because I think prolog is a problem, it is because I think that such languages are not suited for procedural dispatch, divide, etc. tasks. That is something that C is good at. However procedural languages are very bad at tree traversal, so I think that prolog is also a good option. Then about caching While you have a point with your prediction on number of packages, most of those packages involve leaf packages. That means that the number of dependencies per leaf package will probably not increase. However the amount of packages totally not regarded will grow. For this portage should do some kind of on-demand loading of packages. I see no need whatsoever to have a normal emerge task load in the whole tree and create a graph of that. I would like portage to remain lean and mean. I do run gentoo on a 16MB 60mhz pentium, and I like it. While the cache should also be a module that replaces a direct-tree-read module (possibly wrapping it), I think that caching should be possible on a configurable level. Not just dumbly load in all ebuilds. Paul -- Paul de Vrieze Gentoo Developer Mail: pauldv@gentoo.org Homepage: http://www.devrieze.net