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/