1 |
On Mon, Sep 17, 2012 at 9:48 AM, Ben de Groot <yngwin@g.o> wrote: |
2 |
> On 17 September 2012 20:41, Ciaran McCreesh |
3 |
> <ciaran.mccreesh@××××××××××.com> wrote: |
4 |
>> On Mon, 17 Sep 2012 19:49:12 +0800 |
5 |
>> Ben de Groot <yngwin@g.o> wrote: |
6 |
>>> Or, even easier and more straightforward: just keep using *DEPEND. The |
7 |
>>> case hasn't been made yet why we need to change that in the first |
8 |
>>> place. |
9 |
>> |
10 |
>> We're looking at something like eight *DEPEND variables in EAPI 6, with |
11 |
>> considerable overlap between them all. |
12 |
> |
13 |
> And like now, in the great majority of cases, only two or three will be used. |
14 |
> The enormous cost of moving to a different system (or the folly of using |
15 |
> two systems in parallel) is not worth the slight benefit of a more cosmetic |
16 |
> handling of the few cases where a few more *DEPEND variables would be |
17 |
> needed and/or there is some overlap to be dealt with. |
18 |
|
19 |
As someone who's been reading these threads, but hasn't actually |
20 |
written any ebuilds from scratch, I'd like to offer my perspective as |
21 |
a well-intentioned beginner: |
22 |
|
23 |
On labels: The labels, to me, appeared largely more readable (and less |
24 |
formidable a syntax to read and write as a human) than the foo? ( |
25 |
bar/baz ) syntax...until someone demonstrated a distinction between |
26 |
depends and dependency types. I hadn't even noticed a distinction |
27 |
between the two, until that point was raised. |
28 |
|
29 |
While I like the labels (to me, they feel similar to Makefiles or C |
30 |
switch statements), a clearer distinction between dependencies and |
31 |
dependency types would be nice. |
32 |
|
33 |
On unified DEPENDS vs *DEPEND: It seems to me that at a code level, |
34 |
there's no real semantic difference. Since they both parse out |
35 |
losslessly to the same abstract thing, you could serialize that |
36 |
abstract thing back out into either format. Given most cases will be |
37 |
simple, you could even serialize it away into something not |
38 |
bash-based, if desired. All this means, to me, that the behavior of |
39 |
the two under the hood is essentially irrelevant, and any bugs in |
40 |
complex implementation could be caught with automated testing. |
41 |
|
42 |
I personally favor a singular 'DEPENDS', because |
43 |
|
44 |
1) I feel it would lead to better-organized documentation (I'm looking |
45 |
for details about one var, rather than two or three vars--oh and then |
46 |
there's the other N *DEPENDS I may not even have heard of yet), and |
47 |
|
48 |
2) I worry less about accidental namespace pollution in my make.conf |
49 |
file. Why do I worry about namespace pollution? Rather than using |
50 |
profiles, I have around 40-50 USE flags divided by category into |
51 |
varnames like SYS_USE_COMPRESION, and then I have a line that says |
52 |
USE="${SYS_USE_CPU} ${SYS_USE_COMPRESSION} ${SYS_USE_DONOTWANT} # etc" |
53 |
which coalesces it all. When I ran into a strange problem some time |
54 |
back, someone assisting me initially suspected that my SYS_USE_* vars |
55 |
might be conflicting with something internal to portage. |
56 |
|
57 |
Again, this isn't coming from a seasoned developer, this is coming |
58 |
from a well-intentioned beginner with very little time on his hands. |
59 |
-- |
60 |
:wq |