1 |
Dnia 2014-08-04, o godz. 08:06:42 |
2 |
Ulrich Mueller <ulm@g.o> napisał(a): |
3 |
|
4 |
> >>>>> On Mon, 4 Aug 2014, Michał Górny wrote: |
5 |
> > In particular, I was thinking we could reuse this syntax: |
6 |
> |
7 |
> > || ( A:= B:= ) |
8 |
> |
9 |
> > to express any-of dependencies that do not support runtime switching |
10 |
> > of providers -- since that is pretty much what := does to slots. |
11 |
> > This would save us from creating a new syntax like '||= ()' [1]. |
12 |
> |
13 |
> Please don't, because it makes things pretty much unreadable. If you |
14 |
> want an operator like || ( ) but without runtime switching, then |
15 |
> define one (e.g., <<= or ||= as suggested in [1]), but don't try |
16 |
> to inherit properties from its children. |
17 |
|
18 |
Reasonable. However, as I see it, we'll end up having up to four |
19 |
different operators: |
20 |
|
21 |
- || that is deprecated yet everyone will still use it (like they don't |
22 |
use :* right now), |
23 |
|
24 |
- ||* that will be used scarcely, |
25 |
|
26 |
- <<= that would be the preferred variant for compile-time switches yet |
27 |
many people will not use it because it has different characters than |
28 |
'||' [we could try maybe '||<' so that people will still see it as |
29 |
replacement for '||'], |
30 |
|
31 |
- ||= that most people would use forgetting about '<<=' [or '||<']. |
32 |
|
33 |
So, banning '|| ( A:= B:= )' in a future EAPI sounds reasonable. |
34 |
However, there's still the matter of setting current Portage behavior |
35 |
because I don't we should keep the non-predictable magic. |
36 |
|
37 |
What should be the current behavior then? Should we assume that all |
38 |
'||' are not well-defined and need to be compile-switchable? Or try to |
39 |
invent heuristic like I suggested? |
40 |
|
41 |
-- |
42 |
Best regards, |
43 |
Michał Górny |