On Oct 7, 2006, at 9:28 PM, Adam Kennedy wrote:

Which is why I'm suggesting that a basic boolean flag isn't quite good enough, because it doesn't deal with installers (and there's quite a number of them) that can optionally make use of a compiler to influence their dependencies.

I know there are a fair number of distros out there that can optionally use a compiler or not. But I don't really know of any Distro::A that use Dependency::X if a compiler is present, and Dependency::Y if not.

Perhaps you're thinking of the situation where Dependency::X requires a compiler and Dependency::Y doesn't, and either will work fine for Distro::A? In that case, Distro::A should just declare that it needs either Dependency::X or Dependency::Y to be installed (something that it unfortunately can't declare explicitly in the META.yml, but that's another topic...).

As I mentioned in my previous message, the user may still have any number of ways to fulfill the dependency even if they don't have a compiler. It's no business of Distro::A *how* the dependency gets fulfilled.


The minimum you'd need would be some sort of trinary yes|no|maybe logic, because the module that optionally make use would set it to "maybe" and then the graph recursion could come up with a definite result of "need a compiler" and "don't need a compiler" and the rest becomes "might need a compiler".


It seems to me that if a given distro can be built either with a compiler or without one (e.g. Params::Validate), then the answer to "does it require a compiler" is a simple "no".

 -Ken

Reply via email to