Gentoo Archives: gentoo-pms

From: Brian Harring <ferringb@×××××.com>
To: Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>
Cc: gentoo-pms@l.g.o, gentoo-dev@l.g.o
Subject: Re: [gentoo-pms] GLEP: gentoo sync based unified deps proposal
Date: Sun, 30 Sep 2012 20:15:07
Message-Id: 20120930201453.GC2180@localhost
In Reply to: Re: [gentoo-pms] GLEP: gentoo sync based unified deps proposal by Ciaran McCreesh
1 On Sat, Sep 29, 2012 at 05:05:09PM +0100, Ciaran McCreesh wrote:
2 > On Tue, 25 Sep 2012 15:46:14 -0700
3 > Brian Harring <ferringb@×××××.com> wrote:
4 > > Fun fact; peoples usage of labels in exherbo is thus:
5 > >
6 > > build+run:
7 > > set of deps
8 > > run:
9 > > set of deps/conditionals/etc
10 >
11 > That's largely because there are a lot of former Gentoo developers
12 > there who all said "oh, yeah, I forgot we could do it the other way"
13 > when this was pointed out...
14
15 I analyzed *all* exheres on git.exherbo.
16
17 To be crystal clear, these include your packages.
18
19 You yourself didn't use nested labels. So either the author of labels
20 'forgot' he could use it, or just didn't find the nesting actually
21 useful.
22
23 Considering I've not found any examples where nesting /would/ be
24 useful, I'm inclined to agree w/ y'alls usage- that nesting doesn't
25 matter.
26
27 So... real world usage removes one of the core arguments of labels,
28 leaving it just as "it's a new syntax/aesthetically more pleasing" in
29 comparison to dep:build? ( blah ) form.
30
31 Not expecting you'll agree with that statement based on the facts of
32 y'alls own repo... so if you're going to retort, bust out actual
33 examples from eithe trees, where nesting would be preferable to the
34 form people use now please; else just drop it (-your- own usage of
35 labels disproves your claim; thus why I want actual examples now if
36 that point will be debated any further).
37
38
39 > > > Specification in terms of rendering has a huge problem, though.
40 > > > Remembering the crazy rules Gentoo has for || ( flag? ( ) ), what
41 > > > does this do?
42 > > >
43 > > > || ( dep:build? ( a ) dep:run? ( b ) )
44 > >
45 > > Honestly, I was waiting for you to bring this up :)
46 > >
47 > > You're conflating two different things here;
48 > > 1) someone being a dumb ass and writing what's effectively a || (
49 > > atom) block, just doing so in a manner w/out any reason to do so.
50 > >
51 > > 2) Your ongoing jihad against || (), specifically the occasionally
52 > > valid complaint that build/rdepend different means the resolver can
53 > > get stuck in certain pathways when slots are involved, abi, etc.
54 > >
55 > > Either way, in my proposal, I'm not going to single that out and try
56 > > blocking it. The rendered version of it is still stable, albeit if
57 > > it's build/run it's unlikely to be desired if there is ABI involved
58 > > (for non ABI, specifically self-bootstrapping codebases, I suspect
59 > > someone could come up with a valid construct- sed has something
60 > > similar if memory serves).
61 >
62 > The rendered version ends up as ( a b ), in effect... It doesn't end up
63 > as || ( a (at build time) b (at runtime) ).
64
65 Er, I assume you left out some chars there. The rendered version
66 there isn't ( a b ); in old form it is:
67 DEPEND=|| ( a )
68 RDEPEND=|| ( b )
69
70 This is why I label it a stupid use of syntax, but not ultimately
71 harmful.
72
73
74 > > Which is stupid, but syntactically correct. Nor is this a new issue,
75 > > thus I don't particularly agree with your approach of trying to sink
76 > > the proposal via an orthogonal problem.
77 >
78 > No, you're introducing a new kind of weirdness for || ( ) here.
79
80 Na uh, you're the smelly face!
81
82 As I said, and via correcting your misrendering, this isn't
83 introducing anything truly new here; people can/have done '|| ( a )';
84 it's a stupid construct, and for paludis it means it /does/ treat that
85 as an OR block (for hte rest, we do the more obvious tree collapses
86 during parsing, folding "a ( b )" down into "a b", same for "a || ( b
87 )" into "a b" since they're the same thing).
88
89
90 > > Either way, via
91 > > http://dev.gentoo.org/~ferringb/unified-dependencies/labels/translated-to-use-deps.txt
92 > > , I think it's pretty clear labels in real world usage aren't
93 > > bringing anything to the tabel that we wouldn't have via my proposal;
94 > > that leaves labels as just a different syntax (perhaps aesthetically
95 > > more pleasing at first glance, but the label stacking bit via exheres
96 > > analysis is proven to be something people explicitly go out of their
97 > > way to protect against; meaning the aesthetics have a mental
98 > > model cost).
99 >
100 > It's not "go out of their way to protect against". It's "there's an
101 > easy way of making sure everything is composable". Your
102 > misappropriation of use flags doesn't have that.
103
104 Again, you're pulling a "na uh, you're the smelly face" counter
105 argument.
106
107 Bluntly, you want something that is academically possible, but
108 pragmatically/realistically unneeded- meaning the gains are basically
109 not there, but the costs most definitely are.
110
111 Now, for exherbo were y'all lack actual versioned format (exheres-0
112 has changed heavily since it's inception), and chucked everything and
113 did it from scratch (right? or do I need to do a copyright analysis
114 in addition?)... the situation differs. You can invent whatever
115 syntax you want, since you're starting from scratch, changing the
116 mental mode for parsing is fine.
117
118 We however are *not* starting from scratch. This shifts what we'll
119 accept for costs/gains ratio; frankly, the fact y'all don't make use
120 of those claimed 'gains' makes me think y'all tried something and it
121 turned out to be non-useful; it occurs in formats (ebuild format is
122 littered w/ shit like that unfortunately).
123
124 Either way, this is gentoo, we're talking about the ebuild format;
125 just the same as everyone shredded mgorny's ass for proposing we
126 mangle atom syntax w/out gain, and proposal you push for the deptree
127 changing, has to have significant gains for changing the existing
128 form; aesthetics at a cost aren't enough.
129
130 ~harring

Replies

Subject Author
Re: [gentoo-pms] GLEP: gentoo sync based unified deps proposal Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>