On 01/20/2015 10:20 AM, Alexis Ballier wrote: > On Tue, 20 Jan 2015 09:28:21 -0800 > Zac Medico <[email protected]> wrote: > >> On 01/20/2015 01:11 AM, Alexis Ballier wrote: >>> I think we can only make the safest assumption. Even without >>> subslot, if you consider this: || ( a b c d ), with a and c >>> installed but package automagically deciding to use only a, how can >>> a PM decide whether it is safe to remove a or not after the package >>> has been merged ? >> >> Right, this demonstrates that || deps are ambiguous. So, maybe we >> should look at alternatives that are not so ambiguous, such as USE >> conditionals and REQUIRED_USE constraints. > > if you assume there are no automagic deps, what is wrong and/or > ambiguous with '|| ( a b c d ) means "any of them, and at least all > that were available when the package was merged"' ? > in the above example this avoids PM breaking people systems by removing > 'a' (e.g. if another packages pulls in 'd' that has a blocker against > 'a') and as a side effect makes := deps work...
Sure, but when you start using words like "at least all that were available when the package was merged", it shows a lack of precision in your model. I tend to agree with Ciaran, that || deps are best suited to dependencies that can be switched at runtime. For := deps, USE conditionals and REQUIRED_USE constraints seem like a better fit. -- Thanks, Zac
