On Oct 8, 2006, at 5:54 PM, Michael G Schwern wrote:

Here's an alternative approach. Why make compiler dependencies special? Treat them like any other alien dependency. How do we do that? Wrap a module around it. ExtUtils::CBuilder is one example.

I like. Adding ExtUtils::CBuilder as a build_requires dependency has worked fine for me... once I learned that it had to be there.

I think if that error message changes to explicitly state "go install ExtUtils::CBuilder", that's a big help. The only thing left is to make it clear to authors that they must add CBuilder to build_requires if their distro uses M::B features that need it. Documentation is the weak remedy. An automatic error during "./Build dist" is the strong remedy.

Status quo doesn't work because the check for C_support happens against the author's machine when M::B boots up, rather than against the config spec'd in the M::B constructor. What good does it do the end user if some authoring box somewhere out there had M::B configured with C_support when the dist was built? :)

Marvin Humphrey
Rectangular Research
http://www.rectangular.com/


Reply via email to