Params::Util no longer requires a compiler

Alias on 2006-10-10T05:40:10

The most recent couple of updates to the Scalar-List-Util package have seen a number of leaks fixed.

So it's been my habit to push my Scalar::Util and List::Util dependencies up to the post-leak-fix versions when I use a function that has had a leak fixed.

This has caused an unexpected problem, that only really became apparent to me after a report from (Ron Savage)++ on the Module::Build mailing list.

Ron was trying to install Data::Package, which is a pretty simple pure-Perl module that had picked up a fairly high Scalar::Util dependency via a recursive dependency on Params::Util (which I'm now using for most of my modules to keep my param-checking simple, correct and sane).

There are a few different platforms on which compilers are not available by default, or available for free at all (ActivePerl Win32, Solaris, and a few other commercial unix platforms).

These platforms are most likely now no longer able to install Params::Util (and thus via recursion much of my stuff and many other people's stuff) all for the sake of my wanting to be nice and proactively help people remove leaks in the code which uses my things.

What I've REALLY done now though is imposed a rule that says that I'd rather that my users not use my code at all, than that they have a few small leaks (that they were already suffering under previous versions anyway).

I find this a little embarrasing, since I'm often one of the people saying that things like POD tests failing or other low-value tests failing shouldn't prevent end users installing the module altogether, when here I am doing (almost) the same thing. :(

This principle in general (of failing low-value tests and pushing for aggresive module upgrades not everyone can do) violates the "lesser of two evils" principle and makes life marginally better for one group of people at a high cost to another group (although granted that group is often a lot smaller).

I've just uploaded Params::Util 0.21, which will now check in the Makefile.PL to see if you have a compiler, and if not it will be much less aggressive about the Scalar::Util version dependency.

Instead of requiring a version with leak fixes, it requires an earlier version from back in 2003 that fixed a truly critical issue that I'm happier to have prevent the installation altogether if it can't be fixed.