On Mon, 2005-08-22 at 21:41 +0100, Stephen Bennett wrote: > On Mon, 22 Aug 2005 13:49:14 -0400 > Kristian Benoit <[EMAIL PROTECTED]> wrote: > > > I do agree with that, portage probably need a rewrite/better > > modularization anyway. There is/was a project called portage-ng () you > > might want to have a look at. I did a little in that direction > > recently, and it seems that there is not too many people working on > > it since drobbins left, but you can contact Pieter > > ([EMAIL PROTECTED]). I might get on that too at some point in the > > future too. > > portage-ng is dead. There is a rewrite going on, but it'll take a while > to get anywhere near usable.
Here is my recent communication with Pieter: On Sat, 2005-08-13 at 21:59 +0200, Pieter Van den Abeele wrote: > On 13 Aug 2005, at 19:16, Kristian Benoit wrote: > > > I've heard that you might be the last to know something about > > portage-ng. What's the actual status, > > Here's what I've done so far: > > I've build upon Andreas' Zeller idea of using Smolka's feature logic > for software configuration management. Zeller's approach was ok for > determining consistency/inconsistency of software configurations. In > his phd thesis he described the algorithm involved and discussed time > complexity (which goes to NP if you allow for quantification). My > impression after implementing his idea was that for automated > construction there were a few things that were lacking, and some > things were incorrect. I revisited Zellers feature logic, and ended > up with a clean implementation of a declarative language which has > some very desirable properties for automated software construction. > I'd say my approach is closer to the spirit of Smolka's feature logic > than Zellers approach. My non-destructive feature unification has a > worst case time complexity of O(n x m) where n is the length of the > feature term describing your system, and m is the length of the > feature term describing the component to be added. In practice > performance is very good. An emerge --vp --emptytree kde with the > regular portage takes about 55 seconds on my Open Desktop Workstation > and produces a list of 200 packages. A similar action using my > implementation: > > ===================================================================== > Total time: 14.55 seconds > ===================================================================== > Predicate Box Entries = Calls+Redos Time > ===================================================================== > vunify/4 341,900 = 341,900+0 72.6% > $garbage_collect/1 326 = 326+0 13.6% > lists:append/3 684,320 = 684,320+0 4.0% > genterm/2 520 = 520+0 3.9% > hunify/4 520 = 520+0 3.3% > is/2 342,420 = 342,420+0 1.8% > >/2 342,160 = 342,160+0 0.8% > buildsystem/2 1 = 1+0 0.0% > val/3 5,200 = 5,200+0 0.0% > unify/3 260 = 260+0 0.0% > > % 9,531,861 inferences, 13.96 CPU in 14.55 seconds (96% CPU, 682798 > Lips) > > The search space is kept as small as possible because I've introduced > lazy feature evaluation and both multi valued and open features. > Those concepts are missing in Zellers approach. Comparing current > portage and my implementation performance-wise is difficult. In > general mine is faster, but current portage doesn't use sql either. > What is for sure is that mine allows you to express various > constraints. You can prevent a dependency from being built with a > specific use flag. My implementation automatically solves 'blockers'. > Circular dependencies are also solved correctly. For instance, if you > want to install unixodbc with the qt use flag enabled and you want to > install qt wit the unixodbc use flag enabled, my portage knows that > it needs to: > > emerge unixodbc without qt > emerge qt with unixodbc > remerge unixodbc with qt support > > So it makes revdep-rebuild unnecessary basically. > > > Once I was done implementing this new declarative language in which > for instance ebuild concepts can be easily expressed (but also rpm, > deb, fink, darwinports). I implemented a knowledge base in which > those feature terms can be stored/looked up efficiently. I used an > odbc bridge design pattern and have tested the thing with postgresql/ > mysql and sqlite. I've also implemented a DCG parser which parses > ebuilds (no more having to start a bash process for each ebuild like > current portage does) and converts it to feature logic representation > very efficiently. One of the things I'm doing now is finishing up the > documentation and experimenting with an RDF based system for > 'ebuildcasting'. The idea is that users who write ebuilds could > "ebuildcast" it like some people podcast their own radio shows. The > knowledge base can be subscribed to several sources (basically the > idea of portage overlays but combined with some ideas from the > semantic web). > > > > can we see the code, > > yes, the first release (and all releases after that) will be GPL. > > > > do you think there is still a hope ? > > As for me finishing this and doing something with it, yes. > > > > Anyway, I'd like to learn what there is to learn about it and perhaps > > help to get it restarted. > > For your convenience I've put some interesting papers online on > http://www.metadistribution.org/seminar-tinf/ > > I'd love to discuss the idea of feature logic with you while I'm > finishing things up. > > Pieter > > > > thank for any info. > > > > Krisitian -- gentoo-dev@gentoo.org mailing list