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