1 |
On Thu, 08 Apr 2010 16:08:57 +0200 |
2 |
Patrick Lauer <patrick@g.o> wrote: |
3 |
> > Please detail your cycle breaking algorithm that works in such a way |
4 |
> > that it's guaranteed not to toggle flags that will break a system, |
5 |
> > but that does not require any changes to be made to ebuilds etc |
6 |
> > telling the package manager what those flags are. |
7 |
> > |
8 |
> That would violate the Entscheidungsproblem. |
9 |
> |
10 |
> But why would you make the cycle breaking depend on an oracle? Once we |
11 |
> have the method in place we can find the two special cases and think |
12 |
> of ways to fix them. |
13 |
|
14 |
The problem is, the special cases where it goes horribly wrong aren't |
15 |
rare. As soon as you start looking for cycles, you find flags like |
16 |
'build', 'bootstrap' and 'acl'. |
17 |
|
18 |
> Abandoning the idea as a whole just because there may be a corner |
19 |
> case that isn't as easy appears quite silly to me. |
20 |
|
21 |
I'm not after abandoning the idea. I'm after doing it properly, and |
22 |
doing it properly starts by handling the problematic cases rather than |
23 |
pretending they don't exist. |
24 |
|
25 |
We've already seen repeatedly what goes wrong when you start with the |
26 |
assumption "it'll probably work" and then pile on special exceptions |
27 |
every time someone gets screwed over by something you didn't think of. |
28 |
Why don't we go with "we'll only do it for things where we know it'll |
29 |
work" instead this time? |
30 |
|
31 |
-- |
32 |
Ciaran McCreesh |