Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Alexis Ballier
On Thu, 15 Jun 2017 18:48:42 +0100 Ciaran McCreesh wrote: > On Thu, 15 Jun 2017 19:30:02 +0200 > Alexis Ballier wrote: > > On Thu, 15 Jun 2017 18:04:35 +0100 > > Ciaran McCreesh wrote: > > > On Thu, 15 Jun

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Alexis Ballier
On Thu, 15 Jun 2017 19:38:48 +0200 Michał Górny wrote: > On czw, 2017-06-15 at 18:07 +0200, Alexis Ballier wrote: > > On Thu, 15 Jun 2017 17:59:13 +0200 > > Michał Górny wrote: > > > > > On śro, 2017-06-14 at 16:09 +0200, Alexis Ballier wrote: > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Ciaran McCreesh
On Thu, 15 Jun 2017 19:30:02 +0200 Alexis Ballier wrote: > On Thu, 15 Jun 2017 18:04:35 +0100 > Ciaran McCreesh wrote: > > On Thu, 15 Jun 2017 18:55:45 +0200 > > Alexis Ballier wrote: > > > The guarantee comes from the

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Michał Górny
On czw, 2017-06-15 at 18:07 +0200, Alexis Ballier wrote: > On Thu, 15 Jun 2017 17:59:13 +0200 > Michał Górny wrote: > > > On śro, 2017-06-14 at 16:09 +0200, Alexis Ballier wrote: > > > On Wed, 14 Jun 2017 15:57:38 +0200 > > > Michał Górny wrote: > > > [...]

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Alexis Ballier
On Thu, 15 Jun 2017 18:04:35 +0100 Ciaran McCreesh wrote: > On Thu, 15 Jun 2017 18:55:45 +0200 > Alexis Ballier wrote: > > The guarantee comes from the fact that the output is always in the > > space of all possible inputs from the user. So,

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Ciaran McCreesh
On Thu, 15 Jun 2017 18:55:45 +0200 Alexis Ballier wrote: > The guarantee comes from the fact that the output is always in the > space of all possible inputs from the user. So, if some output will > kill a kitten, so does some input. USE=minimal USE=mips USE=-ssl -- Ciaran

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Alexis Ballier
On Thu, 15 Jun 2017 17:45:09 +0100 Ciaran McCreesh wrote: > On Thu, 15 Jun 2017 18:37:16 +0200 > Alexis Ballier wrote: > > > So you're saying that at the end of this, there's an ENFORCED_USE > > > solver that spits out some answer that may or

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Ciaran McCreesh
On Thu, 15 Jun 2017 18:37:16 +0200 Alexis Ballier wrote: > > So you're saying that at the end of this, there's an ENFORCED_USE > > solver that spits out some answer that may or may not be in any way > > a sane solution to the conflict. > > > > I don't see how that's helpful

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Alexis Ballier
On Thu, 15 Jun 2017 17:32:40 +0100 Ciaran McCreesh wrote: > On Thu, 15 Jun 2017 18:30:10 +0200 > Alexis Ballier wrote: > > On Thu, 15 Jun 2017 17:22:26 +0100 > > Ciaran McCreesh wrote: > > > On Thu, 15 Jun

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Ciaran McCreesh
On Thu, 15 Jun 2017 18:30:10 +0200 Alexis Ballier wrote: > On Thu, 15 Jun 2017 17:22:26 +0100 > Ciaran McCreesh wrote: > > On Thu, 15 Jun 2017 18:19:04 +0200 > > Alexis Ballier wrote: > > > On Thu, 15 Jun 2017 17:13:57

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Alexis Ballier
On Thu, 15 Jun 2017 17:22:26 +0100 Ciaran McCreesh wrote: > On Thu, 15 Jun 2017 18:19:04 +0200 > Alexis Ballier wrote: > > On Thu, 15 Jun 2017 17:13:57 +0100 > > Ciaran McCreesh wrote: > > > On Thu, 15 Jun

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Ciaran McCreesh
On Thu, 15 Jun 2017 18:19:04 +0200 Alexis Ballier wrote: > On Thu, 15 Jun 2017 17:13:57 +0100 > Ciaran McCreesh wrote: > > On Thu, 15 Jun 2017 18:07:00 +0200 > > Alexis Ballier wrote: > > > > The best way to convince me

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Alexis Ballier
On Thu, 15 Jun 2017 17:13:57 +0100 Ciaran McCreesh wrote: > On Thu, 15 Jun 2017 18:07:00 +0200 > Alexis Ballier wrote: > > > The best way to convince me is through valid examples. > > > > It is also easier to be convinced when you try to

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Ciaran McCreesh
On Thu, 15 Jun 2017 18:07:00 +0200 Alexis Ballier wrote: > > The best way to convince me is through valid examples. > > It is also easier to be convinced when you try to understand and ask > for clarifications instead of just rejecting without thinking :) The problem with

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Alexis Ballier
On Thu, 15 Jun 2017 17:59:13 +0200 Michał Górny wrote: > On śro, 2017-06-14 at 16:09 +0200, Alexis Ballier wrote: > > On Wed, 14 Jun 2017 15:57:38 +0200 > > Michał Górny wrote: > > [...] > > > > [...] > > > > > > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-15 Thread Michał Górny
On śro, 2017-06-14 at 16:09 +0200, Alexis Ballier wrote: > On Wed, 14 Jun 2017 15:57:38 +0200 > Michał Górny wrote: > [...] > > > [...] > > > > > > > > [1]:https://wiki.gentoo.org/wiki/User:MGorny/GLEP:ReqUse > > > > > > > > > > > > > > I really don't like the

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-14 Thread Alexis Ballier
On Wed, 14 Jun 2017 15:57:38 +0200 Michał Górny wrote: > No. I have already spent too much time on this. We're already long > past all useful use cases Also, if you feel that way, then please stop working on this entirely for now. You're not bringing any good to anyone,

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-14 Thread Alexis Ballier
On Wed, 14 Jun 2017 15:57:38 +0200 Michał Górny wrote: [...] > > [...] > > > > > > > [1]:https://wiki.gentoo.org/wiki/User:MGorny/GLEP:ReqUse > > > > > > > > > > > > I really don't like the reordering thing. Even the > > > > > > restricted syntax does not fix the issue

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-14 Thread Michał Górny
On śro, 2017-06-14 at 15:16 +0200, Alexis Ballier wrote: > On Wed, 14 Jun 2017 14:24:48 +0200 > Michał Górny wrote: > > > On śro, 2017-06-14 at 11:06 +0200, Alexis Ballier wrote: > > > On Wed, 14 Jun 2017 00:13:42 +0200 > > > Michał Górny wrote: > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-14 Thread Alexis Ballier
On Wed, 14 Jun 2017 14:24:48 +0200 Michał Górny wrote: > On śro, 2017-06-14 at 11:06 +0200, Alexis Ballier wrote: > > On Wed, 14 Jun 2017 00:13:42 +0200 > > Michał Górny wrote: > > > > > On wto, 2017-06-13 at 12:27 +0200, Alexis Ballier wrote: > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-14 Thread Michał Górny
On śro, 2017-06-14 at 11:06 +0200, Alexis Ballier wrote: > On Wed, 14 Jun 2017 00:13:42 +0200 > Michał Górny wrote: > > > On wto, 2017-06-13 at 12:27 +0200, Alexis Ballier wrote: > > > On Mon, 12 Jun 2017 21:17:16 +0200 > > > Michał Górny wrote: > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-14 Thread Alexis Ballier
On Wed, 14 Jun 2017 00:13:42 +0200 Michał Górny wrote: > On wto, 2017-06-13 at 12:27 +0200, Alexis Ballier wrote: > > On Mon, 12 Jun 2017 21:17:16 +0200 > > Michał Górny wrote: > > > > > I've actually started typing the initial specification yesterday >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-13 Thread Michał Górny
On wto, 2017-06-13 at 12:27 +0200, Alexis Ballier wrote: > On Mon, 12 Jun 2017 21:17:16 +0200 > Michał Górny wrote: > > > I've actually started typing the initial specification yesterday [1]. > > As you can see, banning the extra constraints has made the algorithms > > much

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-13 Thread Alexis Ballier
On Mon, 12 Jun 2017 21:17:16 +0200 Michał Górny wrote: > On pon, 2017-06-12 at 11:08 +0200, Alexis Ballier wrote: > > On Sun, 11 Jun 2017 18:05:18 +0200 > > Alexis Ballier wrote: > > > > > I think this handles all the cases. I'll try to update the repo

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-12 Thread Michał Górny
On pon, 2017-06-12 at 11:08 +0200, Alexis Ballier wrote: > On Sun, 11 Jun 2017 18:05:18 +0200 > Alexis Ballier wrote: > > > I think this handles all the cases. I'll try to update the repo with > > that algo. > > I've updated my fork. It'd be good to merge it and rebase

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-12 Thread Alexis Ballier
On Sun, 11 Jun 2017 18:05:18 +0200 Alexis Ballier wrote: > I think this handles all the cases. I'll try to update the repo with > that algo. I've updated my fork. It'd be good to merge it and rebase solve() on top of the output of to_impl.convert_to_implications if you're

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-11 Thread Alexis Ballier
On Fri, 09 Jun 2017 18:21:50 +0200 Michał Górny wrote: > (cut off the parts where I agree and there's nothing to add) > > On pią, 2017-06-09 at 16:16 +0200, Alexis Ballier wrote: > > [...] > > > > In your example above, we'd call 'nsolve("|| ( X )")' and > > > > 'nsolve("||

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-09 Thread Michał Górny
(cut off the parts where I agree and there's nothing to add) On pią, 2017-06-09 at 16:16 +0200, Alexis Ballier wrote: > [...] > > > In your example above, we'd call 'nsolve("|| ( X )")' and > > > 'nsolve("|| ( Y )")' (or even simpler, depending on how simplify() > > > is defined). If both X and Y

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-09 Thread Alexis Ballier
On Fri, 09 Jun 2017 14:54:07 +0200 Michał Górny wrote: > On pią, 2017-06-09 at 13:41 +0200, Alexis Ballier wrote: > > On Fri, 09 Jun 2017 11:19:20 +0200 > > Michał Górny wrote: > > > > > On śro, 2017-06-07 at 11:56 +0200, Alexis Ballier wrote: > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-09 Thread Michał Górny
On pią, 2017-06-09 at 13:41 +0200, Alexis Ballier wrote: > On Fri, 09 Jun 2017 11:19:20 +0200 > Michał Górny wrote: > > > On śro, 2017-06-07 at 11:56 +0200, Alexis Ballier wrote: > > > On Wed, 07 Jun 2017 11:27:59 +0200 > > > Michał Górny wrote: > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-09 Thread Michał Górny
On pią, 2017-06-09 at 14:35 +0200, Jason A. Donenfeld wrote: > On Mon, May 29, 2017 at 5:33 PM, Michał Górny wrote: > > > > Secondly, it might be reasonable to provide configurable priorities for > > solving multi-flag constraints. For example, we could use rightmost- > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-09 Thread Jason A. Donenfeld
On Mon, May 29, 2017 at 5:33 PM, Michał Górny wrote: > > Secondly, it might be reasonable to provide configurable priorities for > solving multi-flag constraints. For example, we could use rightmost- > preferred logic for package.use, e.g.: > > */* PROVIDER_SSL:

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-09 Thread Alexis Ballier
On Fri, 09 Jun 2017 11:19:20 +0200 Michał Górny wrote: > On śro, 2017-06-07 at 11:56 +0200, Alexis Ballier wrote: > > On Wed, 07 Jun 2017 11:27:59 +0200 > > Michał Górny wrote: > > > > > On śro, 2017-06-07 at 10:17 +0200, Alexis Ballier wrote: > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-09 Thread Michał Górny
On śro, 2017-06-07 at 11:56 +0200, Alexis Ballier wrote: > On Wed, 07 Jun 2017 11:27:59 +0200 > Michał Górny wrote: > > > On śro, 2017-06-07 at 10:17 +0200, Alexis Ballier wrote: > > > > Also, do I presume correctly that for all supported cases (i.e. > > > > those which your

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-07 Thread Alexis Ballier
On Wed, 07 Jun 2017 11:27:59 +0200 Michał Górny wrote: > On śro, 2017-06-07 at 10:17 +0200, Alexis Ballier wrote: > > > Also, do I presume correctly that for all supported cases (i.e. > > > those which your nsolve does not reject), solve and nsolve are > > > compatible? > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-07 Thread Michał Górny
On śro, 2017-06-07 at 10:17 +0200, Alexis Ballier wrote: > > Also, do I presume correctly that for all supported cases (i.e. those > > which your nsolve does not reject), solve and nsolve are compatible? > > > > Not sure what you mean here. nsolve does not solve anything, it just > validates

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-07 Thread Alexis Ballier
On Tue, 06 Jun 2017 19:39:04 +0200 Michał Górny wrote: > > [...] > > > > > The question is whether we want to: > > > > > > > > > > a. actually try to solve this nesting insanity, > > > > > > > > > > b. declare it unsupported and throw REQUIRED_USE mismatch on > > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-07 Thread Michał Górny
On wto, 2017-06-06 at 19:39 +0200, Michał Górny wrote: > On wto, 2017-06-06 at 14:08 +0200, Alexis Ballier wrote: > > On Mon, 05 Jun 2017 20:10:12 +0200 > > Michał Górny wrote: > > [...] > > > > > Stand-alone makes little sense (and little trouble) but as you > > > > > could

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-06 Thread Michał Górny
On wto, 2017-06-06 at 14:08 +0200, Alexis Ballier wrote: > On Mon, 05 Jun 2017 20:10:12 +0200 > Michał Górny wrote: > [...] > > > > Stand-alone makes little sense (and little trouble) but as you > > > > could have seen it's used nested in other thingies: > > > > > > > > 1. ||

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-06 Thread Alexis Ballier
On Mon, 05 Jun 2017 20:10:12 +0200 Michał Górny wrote: [...] > > > Stand-alone makes little sense (and little trouble) but as you > > > could have seen it's used nested in other thingies: > > > > > > 1. || ( ( a b ) ( c d ) e ) > > > > > > 2. ?? ( ( a b ) ( c d ) e ) > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-05 Thread Ciaran McCreesh
On Mon, 05 Jun 2017 20:10:12 +0200 Michał Górny wrote: > I'm sure Ciaran will love to elaborate ;-). It's doomed. Even if you get it to work, which you won't, it won't survive ten seconds contact with the enemy. -- Ciaran McCreesh

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-05 Thread Michał Górny
On pon, 2017-06-05 at 19:24 +0200, Alexis Ballier wrote: > On Mon, 05 Jun 2017 16:10:25 +0200 > Michał Górny wrote: > > > On pon, 2017-06-05 at 09:55 +0200, Alexis Ballier wrote: > > > On Sun, 4 Jun 2017 10:59:38 +0200 > > > Alexis Ballier wrote: > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-05 Thread Alexis Ballier
On Mon, 05 Jun 2017 16:10:25 +0200 Michał Górny wrote: > On pon, 2017-06-05 at 09:55 +0200, Alexis Ballier wrote: > > On Sun, 4 Jun 2017 10:59:38 +0200 > > Alexis Ballier wrote: > > > > > Here's a quick n dirty code to play with, based on yours: > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-05 Thread Michał Górny
On pon, 2017-06-05 at 09:55 +0200, Alexis Ballier wrote: > On Sun, 4 Jun 2017 10:59:38 +0200 > Alexis Ballier wrote: > > > Here's a quick n dirty code to play with, based on yours: > > https://github.com/aballier/required-use > > I've run that on the whole tree

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-05 Thread Alexis Ballier
On Mon, 29 May 2017 17:33:13 +0200 Michał Górny wrote: > 2.4. Backwards compatibility > Considering the discussions in that thread, a natural way to move forward now seems to be: 1. Define a way to solve constraints deterministically 2. Get a

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-05 Thread Alexis Ballier
On Sun, 4 Jun 2017 10:59:38 +0200 Alexis Ballier wrote: > Here's a quick n dirty code to play with, based on yours: > https://github.com/aballier/required-use I've run that on the whole tree (considering all ebuilds with non empty REQUIRED_USE), some stats: $ time python3

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-04 Thread Alexis Ballier
Here's a quick n dirty code to play with, based on yours: https://github.com/aballier/required-use On Sat, 3 Jun 2017 18:58:35 +0200 Alexis Ballier wrote: > > 1. ^^ ( pst1 pst2 pst3.. ) pst1? ( pt1 ) pst2? ( pt2 ) pst3? ( pt3 > > ).. $ python3 ./nsolve.py '^^ ( pst1

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-03 Thread Alexis Ballier
On Sat, 03 Jun 2017 17:33:09 +0200 Michał Górny wrote: > On sob, 2017-06-03 at 13:00 +0200, Alexis Ballier wrote: > > This whole thing definitely needs more thought and feedback but for > > now those extra restrictions seem quite natural to me, allow easy > > solving on the PM

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-03 Thread Michał Górny
On sob, 2017-06-03 at 13:00 +0200, Alexis Ballier wrote: > This whole thing definitely needs more thought and feedback but for now > those extra restrictions seem quite natural to me, allow easy solving > on the PM side and allow to have useful feedback from repoman. > Well, I'll try to figure

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-03 Thread Alexis Ballier
On Fri, 02 Jun 2017 15:55:17 +0200 Michał Górny wrote: > On pią, 2017-06-02 at 13:27 +0200, Alexis Ballier wrote: > > On Thu, 01 Jun 2017 23:31:25 +0200 > > Michał Górny wrote: > > [...] > > > > There are probably dozens of ways to make that non > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-02 Thread Michał Górny
On pią, 2017-06-02 at 14:16 +0200, Alexis Ballier wrote: > On Thu, 01 Jun 2017 23:31:25 +0200 > Michał Górny wrote: > > My current code is on github [1]. It's ugly, slow and incomplete. It's > > merely a proof-of-concept and testing toy but still could give some > > clues. > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-02 Thread Michał Górny
On pią, 2017-06-02 at 13:27 +0200, Alexis Ballier wrote: > On Thu, 01 Jun 2017 23:31:25 +0200 > Michał Górny wrote: > [...] > > > There are probably dozens of ways to make that non deterministic. > > > Here's one: USE='-*'. Apply '|| ( cli cgi fpm apache2 embed phpdbg > > > )'

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-02 Thread Michał Górny
On pią, 2017-06-02 at 13:18 +0200, Alexis Ballier wrote: > On Fri, 02 Jun 2017 08:37:30 +0200 > Michał Górny wrote: > > > On czw, 2017-06-01 at 23:31 +0200, Michał Górny wrote: > > > On czw, 2017-06-01 at 10:55 +0200, Alexis Ballier wrote: > > > > On Wed, 31 May 2017

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-02 Thread Alexis Ballier
On Thu, 01 Jun 2017 23:31:25 +0200 Michał Górny wrote: > My current code is on github [1]. It's ugly, slow and incomplete. It's > merely a proof-of-concept and testing toy but still could give some > clues. > > [1]:https://github.com/mgorny/required-use Nice work by the way.

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-02 Thread Alexis Ballier
On Thu, 01 Jun 2017 23:31:25 +0200 Michał Górny wrote: [...] > > There are probably dozens of ways to make that non deterministic. > > Here's one: USE='-*'. Apply '|| ( cli cgi fpm apache2 embed phpdbg > > )' last; this enables 'cli'. Since it's the last one, REQUIRED_USE > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-02 Thread Alexis Ballier
On Fri, 02 Jun 2017 08:37:30 +0200 Michał Górny wrote: > On czw, 2017-06-01 at 23:31 +0200, Michał Górny wrote: > > On czw, 2017-06-01 at 10:55 +0200, Alexis Ballier wrote: > > > On Wed, 31 May 2017 21:02:24 +0200 > > > Michał Górny wrote: > > > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-02 Thread Michał Górny
On czw, 2017-06-01 at 23:31 +0200, Michał Górny wrote: > On czw, 2017-06-01 at 10:55 +0200, Alexis Ballier wrote: > > On Wed, 31 May 2017 21:02:24 +0200 > > Michał Górny wrote: > > > > > On śro, 2017-05-31 at 19:39 +0200, Alexis Ballier wrote: > > > > > > Again, you *need* to

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-01 Thread Michał Górny
On czw, 2017-06-01 at 20:17 -0500, A. Wilcox wrote: > unpopular, unwanted opinion: > > just have users of a *source based distro* where the emphasis is > *choice* actually choose what they want? > > What is the big deal with the way REQUIRED_USE works now? "Users have > to do something". You

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-01 Thread A. Wilcox
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 On 01/06/17 20:28, Rich Freeman wrote: > On Thu, Jun 1, 2017 at 9:17 PM, A. Wilcox > wrote: >> >> just have users of a *source based distro* where the emphasis is >> *choice* actually choose what they want? >> >> What is

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-01 Thread Rich Freeman
On Thu, Jun 1, 2017 at 9:17 PM, A. Wilcox wrote: > > just have users of a *source based distro* where the emphasis is > *choice* actually choose what they want? > > What is the big deal with the way REQUIRED_USE works now? "Users have > to do something". The issue is

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-01 Thread A. Wilcox
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 unpopular, unwanted opinion: just have users of a *source based distro* where the emphasis is *choice* actually choose what they want? What is the big deal with the way REQUIRED_USE works now? "Users have to do something". You always have to do

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-01 Thread Michał Górny
On czw, 2017-06-01 at 10:55 +0200, Alexis Ballier wrote: > On Wed, 31 May 2017 21:02:24 +0200 > Michał Górny wrote: > > > On śro, 2017-05-31 at 19:39 +0200, Alexis Ballier wrote: > > > > > Again, you *need* to process the constraints in order. '!a? > > > > > ( b ) !b? ( a )'

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-06-01 Thread Alexis Ballier
On Wed, 31 May 2017 21:02:24 +0200 Michał Górny wrote: > On śro, 2017-05-31 at 19:39 +0200, Alexis Ballier wrote: > > > > Again, you *need* to process the constraints in order. '!a? > > > > ( b ) !b? ( a )' is not deterministic when none of a and b are > > > > enabled

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Ciaran McCreesh
On Wed, 31 May 2017 21:02:24 +0200 Michał Górny wrote: > No, it can't. That's the whole point. The algorithm must be defined so > that it is always predictable independently of order So what's this mysterious algorithm then? -- Ciaran McCreesh

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Michał Górny
On śro, 2017-05-31 at 19:39 +0200, Alexis Ballier wrote: > > > Again, you *need* to process the constraints in order. '!a? > > > ( b ) !b? ( a )' is not deterministic when none of a and b are > > > enabled otherwise. > > > > You can't rely on any particular order of constraints, especially

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Alexis Ballier
On Wed, 31 May 2017 15:04:52 +0200 Michał Górny wrote: > On śro, 2017-05-31 at 10:38 +0200, Alexis Ballier wrote: > > > > What if I specifically set USE=-bar in make.conf ? Do we really > > > > want PM to override that without telling me ? > > > > > > Yes. Unless you

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Michał Górny
On śro, 2017-05-31 at 10:38 +0200, Alexis Ballier wrote: > > > What if I specifically set USE=-bar in make.conf ? Do we really > > > want PM to override that without telling me ? > > > > Yes. Unless you specifically and explicitly disable that (globally or > > for USE=bar), in which case the PM

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Alexis Ballier
On Wed, 31 May 2017 10:03:12 +0200 Michał Górny wrote: > On śro, 2017-05-31 at 09:32 +0200, Alexis Ballier wrote: > > On Wed, 31 May 2017 08:55:17 +0200 > > Michał Górny wrote: > > > > > On wto, 2017-05-30 at 20:46 +0200, Alexis Ballier wrote: > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Michał Górny
On śro, 2017-05-31 at 09:32 +0200, Alexis Ballier wrote: > On Wed, 31 May 2017 08:55:17 +0200 > Michał Górny wrote: > > > On wto, 2017-05-30 at 20:46 +0200, Alexis Ballier wrote: > > > On Tue, 30 May 2017 20:11:38 +0200 > > > Michał Górny wrote: > > > [...]

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Alexis Ballier
On Wed, 31 May 2017 09:54:56 +0200 Alexis Ballier wrote: > On Wed, 31 May 2017 08:51:33 +0100 > Ciaran McCreesh wrote: > > > On Wed, 31 May 2017 09:35:04 +0200 > > Michał Górny wrote: > > > On śro, 2017-05-31 at 08:24

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Alexis Ballier
On Wed, 31 May 2017 08:51:33 +0100 Ciaran McCreesh wrote: > On Wed, 31 May 2017 09:35:04 +0200 > Michał Górny wrote: > > On śro, 2017-05-31 at 08:24 +0100, Ciaran McCreesh wrote: > > > On Wed, 31 May 2017 08:55:17 +0200 > > > Michał Górny

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Ciaran McCreesh
On Wed, 31 May 2017 09:35:04 +0200 Michał Górny wrote: > On śro, 2017-05-31 at 08:24 +0100, Ciaran McCreesh wrote: > > On Wed, 31 May 2017 08:55:17 +0200 > > Michał Górny wrote: > > > For example: > > > > > > foo? ( bar ) > > > > > > would mean 'if you

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Michał Górny
On śro, 2017-05-31 at 08:24 +0100, Ciaran McCreesh wrote: > On Wed, 31 May 2017 08:55:17 +0200 > Michał Górny wrote: > > For example: > > > > foo? ( bar ) > > > > would mean 'if you have USE=foo, then USE=bar is enabled as well'. > > What about "if bar cannot be enabled,

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Alexis Ballier
On Wed, 31 May 2017 08:24:20 +0100 Ciaran McCreesh wrote: > On Wed, 31 May 2017 08:55:17 +0200 > Michał Górny wrote: > > For example: > > > > foo? ( bar ) > > > > would mean 'if you have USE=foo, then USE=bar is enabled as well'. > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Alexis Ballier
On Wed, 31 May 2017 08:55:17 +0200 Michał Górny wrote: > On wto, 2017-05-30 at 20:46 +0200, Alexis Ballier wrote: > > On Tue, 30 May 2017 20:11:38 +0200 > > Michał Górny wrote: > > [...] > > > > > Of course, we could just validate all the possible cases

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Ciaran McCreesh
On Wed, 31 May 2017 08:55:17 +0200 Michał Górny wrote: > For example: > > foo? ( bar ) > > would mean 'if you have USE=foo, then USE=bar is enabled as well'. What about "if bar cannot be enabled, then turn foo off"? -- Ciaran McCreesh

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-31 Thread Michał Górny
On wto, 2017-05-30 at 20:46 +0200, Alexis Ballier wrote: > On Tue, 30 May 2017 20:11:38 +0200 > Michał Górny wrote: > [...] > > > > Of course, we could just validate all the possible cases via > > > > repoman, and reject the ebuild if there's at least one conflict > > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Kent Fredric
On Tue, 30 May 2017 09:56:07 +0100 Ciaran McCreesh wrote: > First problem: encoding "don't change this from its current setting > unless you have a reason to do so" is an utter pain in SAT. I get the impression that this is harder to solve in Gentoo than it has

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Alexis Ballier
On Tue, 30 May 2017 20:11:38 +0200 Michał Górny wrote: [...] > > > Of course, we could just validate all the possible cases via > > > repoman, and reject the ebuild if there's at least one conflict > > > between them. Not sure how to express that properly in the spec > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Michał Górny
On wto, 2017-05-30 at 17:33 +0200, Alexis Ballier wrote: > On Tue, 30 May 2017 16:33:32 +0200 > Michał Górny wrote: > > [...] > > The problem is: how far is that going to work? That's what I would > > like to try determining in the first place. > > > > I'm most worried about

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Alexis Ballier
On Tue, 30 May 2017 16:33:32 +0200 Michał Górny wrote: [...] > The problem is: how far is that going to work? That's what I would > like to try determining in the first place. > > I'm most worried about complex constructs like: > > foo? ( bar ) ^^ ( baz bar ) The order in

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Michał Górny
On wto, 2017-05-30 at 14:00 +0200, Ulrich Mueller wrote: > > > > > > On Tue, 30 May 2017, Alexis Ballier wrote: > > The way I see it, this boils down to spec'ing something that > > guarantees there's a unique solution given an input. The solution > > does not have to be good or bad (we don't have

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Michał Górny
On wto, 2017-05-30 at 11:34 +0200, Alexis Ballier wrote: > Sidenote: I just realized '|| ( a b c )' with left-most preference > > > might be better since we are not dealing with binary variables but > > > ternary ones (user disabled, user enabled, unspecified). 'USE="" || > > > ( a b c )' should

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Ulrich Mueller
> On Tue, 30 May 2017, Alexis Ballier wrote: > The way I see it, this boils down to spec'ing something that > guarantees there's a unique solution given an input. The solution > does not have to be good or bad (we don't have a good metric on that > anyway), it just has to be deterministic so

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Alexis Ballier
On Tue, 30 May 2017 10:29:48 +0200 Michał Górny wrote: > That's why I'm sending this to the mailing list as a RFC, not a > proposal to vote on. It solves a defined set of problems, and gives > other chance to improve it and turn it into a complete solution. It's > not like it's

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Alexis Ballier
On Tue, 30 May 2017 09:56:07 +0100 Ciaran McCreesh wrote: > On Tue, 30 May 2017 10:46:54 +0200 > Alexis Ballier wrote: > > On Tue, 30 May 2017 09:22:45 +0100 > > Ciaran McCreesh wrote: > > > On Tue, 30 May

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Ciaran McCreesh
On Tue, 30 May 2017 10:46:54 +0200 Alexis Ballier wrote: > On Tue, 30 May 2017 09:22:45 +0100 > Ciaran McCreesh wrote: > > On Tue, 30 May 2017 09:42:45 +0200 > > Alexis Ballier wrote: > > > Oh crap, this requires to

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Alexis Ballier
On Tue, 30 May 2017 09:22:45 +0100 Ciaran McCreesh wrote: > On Tue, 30 May 2017 09:42:45 +0200 > Alexis Ballier wrote: > > Oh crap, this requires to solve SAT. > > The main problem would not be solving SAT, in this case. The problem > is

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Michał Górny
On wto, 2017-05-30 at 09:42 +0200, Alexis Ballier wrote: > On Mon, 29 May 2017 23:23:55 +0200 > Michał Górny wrote: > > > On pon, 2017-05-29 at 20:00 +0200, Alexis Ballier wrote: > > > On Mon, 29 May 2017 17:33:13 +0200 > > > Michał Górny wrote: > > [...]

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Ciaran McCreesh
On Tue, 30 May 2017 09:42:45 +0200 Alexis Ballier wrote: > Oh crap, this requires to solve SAT. The main problem would not be solving SAT, in this case. The problem is providing the right answer when not enough information is given. Spitting out a resolution which satisfies

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Alexis Ballier
On Tue, 30 May 2017 10:05:41 +0200 Ulrich Mueller wrote: > > On Tue, 30 May 2017, Alexis Ballier wrote: > > > On Tue, 30 May 2017 00:01:16 +0200 > > Ulrich Mueller wrote: > > >> Also, can we find a better name? Sorry for the bikeshedding at this > >>

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Ulrich Mueller
> On Tue, 30 May 2017, Alexis Ballier wrote: > On Tue, 30 May 2017 00:01:16 +0200 > Ulrich Mueller wrote: >> Also, can we find a better name? Sorry for the bikeshedding at this >> early stage, but I believe that ENFORCED_USE can be easily confused >> with use.force in

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Alexis Ballier
On Tue, 30 May 2017 00:01:16 +0200 Ulrich Mueller wrote: > > On Mon, 29 May 2017, Michał Górny wrote: > Also, can we find a better name? Sorry for the bikeshedding at this > early stage, but I believe that ENFORCED_USE can be easily confused > with use.force in profiles.

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-30 Thread Alexis Ballier
On Mon, 29 May 2017 23:23:55 +0200 Michał Górny wrote: > On pon, 2017-05-29 at 20:00 +0200, Alexis Ballier wrote: > > On Mon, 29 May 2017 17:33:13 +0200 > > Michał Górny wrote: [...] > > > It can also be used with multi-flag ??, ^^ and || constraints, > > >

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-29 Thread Ciaran McCreesh
On Tue, 30 May 2017 00:01:16 +0200 Ulrich Mueller wrote: > > On Mon, 29 May 2017, Michał Górny wrote: > > On pon, 2017-05-29 at 20:00 +0200, Alexis Ballier wrote: > >> Can you provide an efficient algorithm for the above syntax? That > >> is, given a set of +/- useflags

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-29 Thread Ulrich Mueller
> On Mon, 29 May 2017, Michał Górny wrote: > On pon, 2017-05-29 at 20:00 +0200, Alexis Ballier wrote: >> Can you provide an efficient algorithm for the above syntax? That >> is, given a set of +/- useflags forced by user, output the set of >> effective useflags (or a rant if it is

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-29 Thread Ciaran McCreesh
On Mon, 29 May 2017 23:23:55 +0200 Michał Górny wrote: > > Can you provide an efficient algorithm for the above syntax? > > That is, given a set of +/- useflags forced by user, output the set > > of effective useflags (or a rant if it is inconsistent). > > I'd rather leave

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-29 Thread Michał Górny
On pon, 2017-05-29 at 20:00 +0200, Alexis Ballier wrote: > On Mon, 29 May 2017 17:33:13 +0200 > Michał Górny wrote: > > > In the basic form, it can be used to conditionally force a specific > > flag to be enabled or disabled. For example: > > > > foo? ( bar ) > > > > would

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-29 Thread Michał Górny
On pon, 2017-05-29 at 20:24 +0100, Ciaran McCreesh wrote: > On Mon, 29 May 2017 17:33:13 +0200 > Michał Górny wrote: > > For a long time we seem to be missing appropriate tools to handle USE > > flag constraints efficiently. EAPI 4 brought REQUIRED_USE but all > > things

Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)

2017-05-29 Thread Ciaran McCreesh
On Mon, 29 May 2017 21:42:33 +0200 Michał Górny wrote: > On pon, 2017-05-29 at 20:24 +0100, Ciaran McCreesh wrote: > > On Mon, 29 May 2017 17:33:13 +0200 > > Michał Górny wrote: > > > For a long time we seem to be missing appropriate tools to handle > > >

  1   2   >