Gentoo Archives: gentoo-dev

From: Kristian Benoit <kbenoit@×××××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC - Gentoo on the Lab
Date: Tue, 23 Aug 2005 16:39:14
Message-Id: 1124814488.6502.154.camel@localhost
In Reply to: Re: [gentoo-dev] RFC - Gentoo on the Lab by Stephen Bennett
1 On Mon, 2005-08-22 at 21:41 +0100, Stephen Bennett wrote:
2 > On Mon, 22 Aug 2005 13:49:14 -0400
3 > Kristian Benoit <kbenoit@×××××××.com> wrote:
4 >
5 > > I do agree with that, portage probably need a rewrite/better
6 > > modularization anyway. There is/was a project called portage-ng () you
7 > > might want to have a look at. I did a little in that direction
8 > > recently, and it seems that there is not too many people working on
9 > > it since drobbins left, but you can contact Pieter
10 > > (pvdabeel@g.o). I might get on that too at some point in the
11 > > future too.
12 >
13 > portage-ng is dead. There is a rewrite going on, but it'll take a while
14 > to get anywhere near usable.
15
16 Here is my recent communication with Pieter:
17
18 On Sat, 2005-08-13 at 21:59 +0200, Pieter Van den Abeele wrote:
19 > On 13 Aug 2005, at 19:16, Kristian Benoit wrote:
20 >
21 > > I've heard that you might be the last to know something about
22 > > portage-ng. What's the actual status,
23 >
24 > Here's what I've done so far:
25 >
26 > I've build upon Andreas' Zeller idea of using Smolka's feature logic
27 > for software configuration management. Zeller's approach was ok for
28 > determining consistency/inconsistency of software configurations. In
29 > his phd thesis he described the algorithm involved and discussed time
30 > complexity (which goes to NP if you allow for quantification). My
31 > impression after implementing his idea was that for automated
32 > construction there were a few things that were lacking, and some
33 > things were incorrect. I revisited Zellers feature logic, and ended
34 > up with a clean implementation of a declarative language which has
35 > some very desirable properties for automated software construction.
36 > I'd say my approach is closer to the spirit of Smolka's feature logic
37 > than Zellers approach. My non-destructive feature unification has a
38 > worst case time complexity of O(n x m) where n is the length of the
39 > feature term describing your system, and m is the length of the
40 > feature term describing the component to be added. In practice
41 > performance is very good. An emerge --vp --emptytree kde with the
42 > regular portage takes about 55 seconds on my Open Desktop Workstation
43 > and produces a list of 200 packages. A similar action using my
44 > implementation:
45 >
46 > =====================================================================
47 > Total time: 14.55 seconds
48 > =====================================================================
49 > Predicate Box Entries = Calls+Redos Time
50 > =====================================================================
51 > vunify/4 341,900 = 341,900+0 72.6%
52 > $garbage_collect/1 326 = 326+0 13.6%
53 > lists:append/3 684,320 = 684,320+0 4.0%
54 > genterm/2 520 = 520+0 3.9%
55 > hunify/4 520 = 520+0 3.3%
56 > is/2 342,420 = 342,420+0 1.8%
57 > >/2 342,160 = 342,160+0 0.8%
58 > buildsystem/2 1 = 1+0 0.0%
59 > val/3 5,200 = 5,200+0 0.0%
60 > unify/3 260 = 260+0 0.0%
61 >
62 > % 9,531,861 inferences, 13.96 CPU in 14.55 seconds (96% CPU, 682798
63 > Lips)
64 >
65 > The search space is kept as small as possible because I've introduced
66 > lazy feature evaluation and both multi valued and open features.
67 > Those concepts are missing in Zellers approach. Comparing current
68 > portage and my implementation performance-wise is difficult. In
69 > general mine is faster, but current portage doesn't use sql either.
70 > What is for sure is that mine allows you to express various
71 > constraints. You can prevent a dependency from being built with a
72 > specific use flag. My implementation automatically solves 'blockers'.
73 > Circular dependencies are also solved correctly. For instance, if you
74 > want to install unixodbc with the qt use flag enabled and you want to
75 > install qt wit the unixodbc use flag enabled, my portage knows that
76 > it needs to:
77 >
78 > emerge unixodbc without qt
79 > emerge qt with unixodbc
80 > remerge unixodbc with qt support
81 >
82 > So it makes revdep-rebuild unnecessary basically.
83 >
84 >
85 > Once I was done implementing this new declarative language in which
86 > for instance ebuild concepts can be easily expressed (but also rpm,
87 > deb, fink, darwinports). I implemented a knowledge base in which
88 > those feature terms can be stored/looked up efficiently. I used an
89 > odbc bridge design pattern and have tested the thing with postgresql/
90 > mysql and sqlite. I've also implemented a DCG parser which parses
91 > ebuilds (no more having to start a bash process for each ebuild like
92 > current portage does) and converts it to feature logic representation
93 > very efficiently. One of the things I'm doing now is finishing up the
94 > documentation and experimenting with an RDF based system for
95 > 'ebuildcasting'. The idea is that users who write ebuilds could
96 > "ebuildcast" it like some people podcast their own radio shows. The
97 > knowledge base can be subscribed to several sources (basically the
98 > idea of portage overlays but combined with some ideas from the
99 > semantic web).
100 >
101 >
102 > > can we see the code,
103 >
104 > yes, the first release (and all releases after that) will be GPL.
105 >
106 >
107 > > do you think there is still a hope ?
108 >
109 > As for me finishing this and doing something with it, yes.
110 >
111 >
112 > > Anyway, I'd like to learn what there is to learn about it and perhaps
113 > > help to get it restarted.
114 >
115 > For your convenience I've put some interesting papers online on
116 > http://www.metadistribution.org/seminar-tinf/
117 >
118 > I'd love to discuss the idea of feature logic with you while I'm
119 > finishing things up.
120 >
121 > Pieter
122 >
123 >
124 > > thank for any info.
125 > >
126 > > Krisitian
127
128 --
129 gentoo-dev@g.o mailing list

Replies

Subject Author
Re: [gentoo-dev] RFC - Gentoo on the Lab Brian Harring <ferringb@g.o>