From: Kristian Benoit <kbenoit@opersys.com>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] RFC - Gentoo on the Lab
Date: Tue, 23 Aug 2005 12:28:08 -0400 [thread overview]
Message-ID: <1124814488.6502.154.camel@localhost> (raw)
In-Reply-To: <20050822214135.6b916221@localhost>
On Mon, 2005-08-22 at 21:41 +0100, Stephen Bennett wrote:
> On Mon, 22 Aug 2005 13:49:14 -0400
> Kristian Benoit <kbenoit@opersys.com> 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
next prev parent reply other threads:[~2005-08-23 16:39 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-22 1:58 [gentoo-dev] RFC - Gentoo on the Lab Ricardo Loureiro
2005-08-22 2:12 ` Andrew Gaffney
2005-08-22 3:34 ` Donnie Berkholz
2005-08-22 10:05 ` Ivan Yosifov
2005-08-22 11:31 ` [gentoo-dev] " Duncan
2005-08-22 13:26 ` Ricardo Loureiro
2005-08-22 23:57 ` [gentoo-dev] " Duncan
2005-08-22 14:38 ` [gentoo-dev] " Marius Mauch
2005-08-22 15:35 ` Ricardo Loureiro
2005-08-22 16:57 ` Grobian
2005-08-22 17:49 ` Kristian Benoit
2005-08-22 20:39 ` Brian Harring
2005-08-23 16:25 ` Kristian Benoit
2005-08-23 17:22 ` Brian Harring
2005-08-23 17:27 ` Brian Harring
2005-08-23 22:58 ` Kristian Benoit
2005-08-25 0:50 ` [gentoo-dev] portage rewrite snapshot (was RFC - Gentoo on the Lab) Brian Harring
2005-08-23 16:45 ` [gentoo-dev] RFC - Gentoo on the Lab Ricardo Loureiro
2005-08-22 20:41 ` Stephen Bennett
2005-08-23 16:28 ` Kristian Benoit [this message]
2005-08-23 17:19 ` Brian Harring
2005-08-23 16:34 ` Ricardo Loureiro
2005-08-23 17:28 ` Marius Mauch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1124814488.6502.154.camel@localhost \
--to=kbenoit@opersys.com \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox