Gentoo Archives: gentoo-dev

From: Alexis Ballier <aballier@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)
Date: Thu, 15 Jun 2017 16:07:14
Message-Id: 20170615180700.11b3ef6a@gentoo.org
In Reply to: Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE) by "Michał Górny"
1 On Thu, 15 Jun 2017 17:59:13 +0200
2 Michał Górny <mgorny@g.o> wrote:
3
4 > On śro, 2017-06-14 at 16:09 +0200, Alexis Ballier wrote:
5 > > On Wed, 14 Jun 2017 15:57:38 +0200
6 > > Michał Górny <mgorny@g.o> wrote:
7 > > [...]
8 > > > > [...]
9 > > > > > > > > > [1]:https://wiki.gentoo.org/wiki/User:MGorny/GLEP:ReqUse
10 > > > > > > > >
11 > > > > > > > > I really don't like the reordering thing. Even the
12 > > > > > > > > restricted syntax does not fix the issue with '^^ ( a b
13 > > > > > > > > ) b? ( a )' already mentioned here. It'd be much better
14 > > > > > > > > and simpler for the spec just to assign a fixed value
15 > > > > > > > > and use the solving rules with those.
16 > > > > > > >
17 > > > > > > > You're not going to convince me by providing examples
18 > > > > > > > that are utterly broken by design and
19 > > > > > > > meaningless ;-).
20 > > > > > >
21 > > > > > > Well... if it's so obvious that the example is broken by
22 > > > > > > design that you don't even bother to explain why, I assume
23 > > > > > > you have an algorithm for that. Where is the code ? What
24 > > > > > > are the numbers ? How many ebuilds might fail after
25 > > > > > > reordering ? How can this be improved ?
26 > > > > >
27 > > > > > Are you arguing for the sake of arguing here? I just presumed
28 > > > > > that this example is so obviously broken there is no point
29 > > > > > wasting any more time on it. The code of nsolve clearly
30 > > > > > detects that, so I don't really understand what you're trying
31 > > > > > to prove here.
32 > > > >
33 > > > > Those are real questions. You should take breath, think a bit
34 > > > > about it, and try to run the 2 possible orderings of the ^^
35 > > > > through nsolve or even solve.py. They both are very happy (and
36 > > > > are right to be) with the above ordering. You might want to
37 > > > > think a bit more about what is the relation between this broken
38 > > > > 10 chars example and the 10 lines python targets one below.
39 > > > >
40 > > > > You should also realize that all the above questions have
41 > > > > already been answered in length if you do as I suggest.
42 > > >
43 > > > No. I have already spent too much time on this. We're already long
44 > > > past all useful use cases, and now I feel like you're going to
45 > > > argue to death just to find a perfect algorithm that supports
46 > > > every absurd construct anyone can even write, if only to figure
47 > > > out the construct is completely useless.
48 > >
49 > > I'm not going to argue to death. It's already proven reordering is
50 > > broken.
51 > >
52 > > > If you want to play with it more, then please by all means do
53 > > > so.
54 > >
55 > > There is nothing to do for reordering. It's broken by design.
56 > >
57 > > > However, do not expect me to waste any more of my time on it. I've
58 > > > done my part, the code works for all reasonable use cases and
59 > > > solves all the problems I needed solving. If you want more, then
60 > > > it's your job to do it and solve the resulting issues.
61 > >
62 > > Like... writing code handling all the cases and describing how it
63 > > works ? We're past that. The only thing we're not past is that you
64 > > fail to understand it and attempt to block it.
65 > >
66 >
67 > Then please provide a single valid example that:
68
69 app-text/wklej-0.2.1-r1 ^^ ( python_single_target_pypy
70 python_single_target_pypy3 python_single_target_python2_7
71 python_single_target_python3_4 python_single_target_python3_5
72 python_single_target_python3_6 ) python_single_target_pypy?
73 ( python_targets_pypy ) python_single_target_pypy3?
74 ( python_targets_pypy3 ) python_single_target_python2_7?
75 ( python_targets_python2_7 ) python_single_target_python3_4?
76 ( python_targets_python3_4 ) python_single_target_python3_5?
77 ( python_targets_python3_5 ) python_single_target_python3_6?
78 ( python_targets_python3_6 ) vim? ( ^^ ( python_single_target_python2_7
79 ) )
80
81
82 Simplified as:
83 ^^ ( a b ) c? ( b )
84
85 (see the pattern now ? :) )
86
87 > a. is completely 'correct' (that is, provides a valid, predictable
88 > and acceptable solution) with the default ordering O_a,
89
90 c? ( b ) ^^ ( b a )
91
92
93 > b. is not 'correct' with at least one reordering O_b (assuming only
94 > ||, ^^, ?? is subject to reordering),
95
96 c? ( b ) ^^ ( a b )
97
98 >
99 > c. nsolve reports O_a as all good, and O_b as not good.
100
101 I'll let you run this. It does.
102
103 > The best way to convince me is through valid examples.
104
105
106 It is also easier to be convinced when you try to understand and ask
107 for clarifications instead of just rejecting without thinking :)
108
109 Alexis.

Replies