On Aug 2, 2006, at 6:14 AM, John Peacock wrote:

Marvin Humphrey wrote:
IMO, ExtUtils::CBuilder and ExtUtils::ParseXS should be installed along with Module::Build if the box has a C compiler.

Those are legitimately optional modules for Module::Build itself, since it operates just fine without them. However, modules which depend on Module::Build for installation and have XS should add those as explicit dependencies. It is really the module author's responsibility to make sure that all dependencies are explicit.

Argh.

It is NOW, since MB 0.28 broke backwards compatibility with 0.2611.

Distros which worked fine under 0.2611, when MB did its own C handling, suddenly start failing with an obscure error message under 0.28, when MB started requiring CBuilder... and your opinion is that it's the module author's responsibility to add those prereqs?

"CBuilder" and "ParseXS" don't appear anywhere in the Module::Build docs. There are a slew of options that imply that MB supports C: c_source, xs_files, extra_compiler_flags, extra_linker_flags, include_dirs. If there's any caveat in there along the lines of "these are not guaranteed to work unless you explicitly add ExtUtils::CBuilder and ExtUtils::ParseXS as dependencies", I missed it. It's perfectly possible today to code up an MB distro using those options, not realize that you have CBuilder and ParseXS on your system, and send it out into the world to fail.

My preference would be to have XS Just Work, the way it did before. If that is not going to happen, perhaps anything in the docs that requires CBuilder and ParseXS should be quarantined in a section where those dependencies are explained. That won't fix the problem for existing distros, but it's a start.

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

Reply via email to