> i think it's a good question but lacking time travel or a working > 64-bit kernel, this question is unknowable. :-)
;-) After thinking about it I think amd might have been a better example >> > please, no use flags. we can't test what we've got. use >> > flags make the problem go factorial. (gentoo for example >> > doesn't work if you set the profile use flag.) >> >> Now we are getting to the heart of a very important matter. I agree that >> use flags causes the dependency graph to go factorial -- but pruned to >> the >> number of use flags implemented in each ebuild (so it is not factorial to >> the number of accepted use flags). > > if each package has only n use flags, then you still have > 2^n^m options, where m is the number of packages. > > proof: each use flag may be on or off. if we order the use > flags for a package arbitrarly, we can think of them as binary > digits and there would be 2^n possible values. since there > are m packages, we can consider this an m digit number with > each digit taking the value 0 ... 2^n-1. > > if they don't all have the same use flags, we can redo this. > if for package k, there are k_n use flags we would have > 2^{k_0}2^{k_1} ... = > 2^(sum k_i} > > which i'll grant isn't factorial. but it's still 2^{sum of use flags > per package}. :-) > > i'll give you that this isn't factorial. :-) but on the other hand, > if a package might not be installed at all, that's like another use > flag. and without use flags I end up having k*m packages instead of m. So the question still comes to do I write it to allow 2^n^m possible combinations and document the two most common scenarios, or write 2*m package variants and leave it to the interested to populate any of the remaining 2^{k-2} permutations. I'm still undecided, but I know then kinds of bugs that creep up when splitting trees like that. (I guess like splitting hairs ;-) EBo --