Gentoo Archives: gentoo-dev

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

Attachments

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

Replies