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 |