From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lists.gentoo.org ([140.105.134.102] helo=robin.gentoo.org) by nuthatch.gentoo.org with esmtp (Exim 4.43) id 1E7bnu-0007Nh-1g for garchives@archives.gentoo.org; Tue, 23 Aug 2005 16:39:14 +0000 Received: from robin.gentoo.org (localhost [127.0.0.1]) by robin.gentoo.org (8.13.4/8.13.4) with SMTP id j7NGb6tR011308; Tue, 23 Aug 2005 16:37:06 GMT Received: from www.opersys.com (opersys.com [64.40.108.71]) by robin.gentoo.org (8.13.4/8.13.4) with ESMTP id j7NGXbGo012634 for ; Tue, 23 Aug 2005 16:33:38 GMT Received: from [10.10.10.4] (dsl-136-78.aei.ca [66.36.136.78]) by www.opersys.com (8.9.3/8.9.3) with ESMTP id KAA16927 for ; Tue, 23 Aug 2005 10:09:12 -0700 Subject: Re: [gentoo-dev] RFC - Gentoo on the Lab From: Kristian Benoit To: gentoo-dev@lists.gentoo.org In-Reply-To: <20050822214135.6b916221@localhost> References: <20050822025840.6bb9bdb9@acme.rjlouro.org> <20050822163811.3dcc8fde@andy.genone.homeip.net> <1124732954.6502.61.camel@localhost> <20050822214135.6b916221@localhost> Content-Type: text/plain Date: Tue, 23 Aug 2005 12:28:08 -0400 Message-Id: <1124814488.6502.154.camel@localhost> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@gentoo.org Reply-to: gentoo-dev@lists.gentoo.org Mime-Version: 1.0 X-Mailer: Evolution 2.2.1.1 Content-Transfer-Encoding: 7bit X-Archives-Salt: fdb5a54d-c4d4-4c45-bf59-cb18e4705fe1 X-Archives-Hash: 08c1646e5a0ad7a4d7110f12d97a8a17 On Mon, 2005-08-22 at 21:41 +0100, Stephen Bennett wrote: > On Mon, 22 Aug 2005 13:49:14 -0400 > Kristian Benoit 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 > > (pvdabeel@gentoo.org). 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