On 09/08/2012 02:43 AM, Ciaran McCreesh wrote: > On Fri, 07 Sep 2012 18:55:10 -0400 Michael Orlitzky > <mich...@orlitzky.com> wrote: >> I think that dependencies are ultimately not hierarchical > > Situations like foo? ( bar? ( || ( a ( b c ) ) ) ) do happen, so > any new syntax would have to be able to deal with that. >
The deps in both cases are just a collection of atom/type pairs, so anything possible in one must be possible in the other. I think this means, if USE=bar, then we need either a or (b and c)? It could be written, || ( a: bar? ( build run ) b,c: bar? ( build run ) ) Or if we wanted to make it even easier, allow the USE conditional at the top level like we do now: bar? ( || ( a: ( build run ) b,c: ( build run ) )) I'm just wondering if it wouldn't be nicer to think in terms of package atoms instead of the dependency types. Right now, we've got buckets named DEPEND, RDEPEND, etc. and we put the package atoms in those buckets. The above syntax would make the package atoms the buckets, and we would be putting the dependency types into the buckets instead.