All-

I've been looking at some refactoring for the
planned PDL-3.000 release this Summer based
on replacing hand-coded library detection in the
Makefile.PL processing stages by 'use Alien::XXX;'
instead.  That sounds good so far.

Then I took a look at various existing Alien::XXX
modules for ideas to start with or existing modules
that could be used already.  So far it is with great
difficulty that I can determine whether or not a given
module supports the necessary set of perl platforms:
Windows, Mac OS X, and Unixen/Linuxen systems.

The only alternative is to do the actual install
process to see if it "just works" or to drill down
into the implementation to determine how the
module does its work and thence to deduce if
it supports windows (64bit) for example.

To that end, I would like to suggest an addition
to the Alien module manifesto:

   AN ALIEN MODULE SHOULD MAKE IT VERY
   CLEAR WHAT PLATFORMS ARE ACTUALLY
   SUPPORTED.

The README file and the documentation should
indicate this clearly.  Ideally, requirements for
operation should be indicated as well.  Tests
should output information that would allow the
Alien::XXX module author to determine what the
cause of the failure was.

Ironically, many of the Alien::XXX modules solve
the easy case of pulling down a package via a
package manager but rarely can handle platforms
like windows with no standard package manager
or expectation of same.

I suggest a better strategy for Alien::XXX module
implementations would be to first solve the problem
of detecting and using existing libraries and/or
software.  This is much easier to do with support
for most perl platforms so the Alien::XXX would
*start as cross-platform* rather then the often
disappointing surprise they can be now on the
unsupported platforms (most often windows).

Then, the Alien::XXX implementation would grow
from there by adding the ability to install the library
or software as well.  Starting with diagnostic output
on where to obtain the software might be a
reasonable intermediate step as well.

Thoughts or comments?

--Chris

Reply via email to