Gentoo Archives: gentoo-dev

From: Pieter Van den Abeele <pvdabeel@g.o>
To: George Shapovalov <george@g.o>
Cc: gentoo-dev@g.o
Subject: Re: [gentoo-dev] portage-ng concurse entry Was: Updated Portage project page
Date: Fri, 05 Dec 2003 11:46:30
Message-Id: F3BF34D2-274A-11D8-A168-0003938E7E46@gentoo.org
In Reply to: [gentoo-dev] portage-ng concurse entry Was: Updated Portage project page by George Shapovalov
1 Hi,
2
3 On 05 Dec 2003, at 10:58, George Shapovalov wrote:
4
5 > To reiterate them shortly, Prolog is a really esoteric language and I
6 > am not
7 > sure we will be able to find enough people to feel comfortable about
8 > having
9 > the very core of portage-ng implemented in it. Also there might be
10 > issues of
11 > portability and efficiency..
12
13 My biggest concern when reading your small paper is that you chose a
14 deterministic approach to this problem, while in fact the problem is
15 non-determinisitic. Also, your code (which is about 1000 lines long)
16 does -only- a simple dfs and topological ordering, while I can do the
17 same in about 10 lines in prolog and have backtracking for free. I
18 don't see any reasoning about versions, virtuals, constraints, slots,
19 updates, upgrades, downgrades, ... While you claim your code is more
20 portable and efficient, I don't see any substantiated evidence that
21 prolog isn't; neither do I see any evidence that your implementation is
22 correct, while it can be shown that the 'specifications' one declares
23 in prolog are interpreted correctly by prolog, which is -one- of the
24 reasons I preferred prolog.
25
26 There are more advantages to using prolog. But let me point you at some
27 downsides first. Prolog is logic programming, and people tend to avoid
28 logic (and choose other languages like Ada for instance). However,
29 because of its relation to logic, Prolog is often used in reasoning
30 systems, which is in fact what portage is.
31
32 I don't want to start a flame war about programming languages. That
33 would be totally useless because the nice thing about programming
34 languages is that they are all somewhat equivalent but some more
35 expressive than the other for a given problem.
36
37 > I have produced some basic prototyping code to
38 > illustrate what could be expected. The prototype is quite crude, as I
39 > did
40 > this during relatively rare breaks from writing an article (completely
41 > unrelated to CS :)), but it should serve the purpose. Did I say the
42 > code
43 > shoul be readable? So, even though I do not expect many people to be
44 > familiar
45 > with that language I would still suggest trying to look at the code.
46 > You are
47 > in for a one nice surprise ;).
48
49 Ada is a really nice language, but I don't see any direct relevance for
50 the problem at hand.
51
52 > (I am not revealing the name of language in this posting deliberately,
53 > because
54 > I want people to read through arguments first).
55 >
56 > The code is available here:
57 > http://dev.gentoo.org/~george/proto_portage-0.7.5.tar.bz2
58 > but you will probably want to read the text before that.
59 >
60 > In any case, if you want to jump in, just a short install instruction:
61 > run "emerge gnat booch_components "
62 > then untar the package and run make
63 > Although reading INSTALL that comes with the package might be usefull
64 > too ;)
65 > (it has some details in case you experience problems).
66 >
67 > George
68
69 For my thesis and apprenticeship at the Theoretical Computer science
70 laboratory at the free university of Brussels (tinf.vub.ac.be), I have
71 been looking into these issues. The techique we have developed for
72 reasoning about large software configurations such as a
73 meta-distribution will be presented on a Gentoo meeting in the future,
74 and can be implemented in any language you prefer. I will have a fully
75 functional prototype in prolog, because that language offers some
76 benefits, but the idea itself can be implemented in any other language
77 such as Ada or friends.
78
79 Pieter
80
81
82 --
83 gentoo-dev@g.o mailing list

Replies