Gentoo Archives: gentoo-dev

From: Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Portage dependency solving algorithm (WAS: Regarding my final year thesis)
Date: Fri, 07 Nov 2014 18:30:42
Message-Id: 20141107183011.20f12812@googlemail.com
In Reply to: Re: [gentoo-dev] Portage dependency solving algorithm (WAS: Regarding my final year thesis) by Jauhien Piatlicki
1 On Fri, 07 Nov 2014 19:11:04 +0100
2 Jauhien Piatlicki <jauhien@g.o> wrote:
3 > Then the same question for you: where can one read about the algorithm
4 > Paludis uses?
5
6 It's basically a two stage process: simple constraint solving using
7 value ordering heuristics to enforce "don't do unnecessary work", then
8 ordering (which is not quite a graph process, and which is not as
9 simple as a topological sort, because the tree is full of circular
10 dependencies).
11
12 But the interesting question isn't "what's the algorithm?", it's
13 "what's the model?". That's where the complexity lies: figuring out how
14 to turn *DEPEND specifications into constraints is an utter pain, and
15 it isn't clean or easily understandable. The primary reason is ||
16 dependencies: developers like to write not-really-correct and utterly
17 unobvious dependency strings rather than asking for new syntax so they
18 can just say what they mean...
19
20 > And, again, I have herd (did not try myself) that Paludis is as slow
21 > as Portage.
22
23 Well, you're not comparing like with like. Paludis with "everything
24 turned off" does more than Portage with "everything turned on". If all
25 you're looking for is the wrong answer as fast as possible, there are
26 easier ways of getting it...
27
28 --
29 Ciaran McCreesh

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-dev] Portage dependency solving algorithm Matthias Maier <tamiko@g.o>