From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 Date: Sun, 16 May 2010 19:52:09 -0600 From: EBo To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> In-Reply-To: <425b6f8428135ee0c1c1358eb08750a9@kw.quanstro.net> References: <6aaf2d79af665bf1905db13e44e194e5@quanstro.net> <3c68655ad1dadf393d44b4a945abbd7a@swcp.com> <26f3b3b7fc6f7e8e8d90094305925bdd@kw.quanstro.net> <932700d9bb1c81831186e7aeb809fd9f@swcp.com> <425b6f8428135ee0c1c1358eb08750a9@kw.quanstro.net> Message-ID: <0666415404bd7d49e9a122f364b96fbd@swcp.com> User-Agent: RoundCube Webmail/0.3.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Subject: Re: [9fans] nupas update Topicbox-Message-UUID: 260ffcf8-ead6-11e9-9d60-3106f5b1d025 > 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 --