I reckon I ought to be using the more robust ->have_c_compiler method
in Module::Build, rather than just checking ->cbuilder, to determine
whether to do XS stuff in XML-Easy.  (I can easily provide a backup
implementation of ->have_c_compiler to allow building with earlier
versions of M:B.  (I prefer not to require any minimum version of M:B,
until configure_requires handling is all sorted out.))  But I found a
problem in its file handling.  It calls ExtUtils::CBuilder->have_compiler,
which sticks its test files in a fixed location, /tmp/compilet.{c,o,so}
on Unix.  Multiple simultaneous users will clash with each other.

EU:CB should probably be creating a temporary directory, with
unpredictable name, for the purposes of this test.  There are modules to
help with this sort of thing.  I'm a bit surprised that EU:CB doesn't
already have infrastructure for handling temporary files, but it looks
like this is the only compiling method that doesn't start with input
files already in the filesystem.

M:B has places for temporary files.  Should it be able to tell EU:CB to
use a particular directory?

-zefram

Reply via email to