Subject: | Class::Load::XS appears to be "recommends" not "requires" |
I noticed something by accident today: a bug in my build system tried to compile Moose even
though a required dependency was missing. Normally, when a required dependency is
missing, I expect "perl Makefile.PL" or "make test" to implode, but to my surprise, everything
worked.
The issue is a small, but important edge condition. On AIX, Class::Load::XS does not work at
all with perl5.14, if you build a 32 bit perl. Therefore, everything that depends on that
module, on that particular platform, can not use Moose. As a result, when building Moose,
and anything else that needs Class::Load::XS, I have to drop that platform from support.
If Class::Load::XS is missing, then I am still able to build Moose-2.0401, with no test suite
failures, at least on 32 bit AIX with perl5.14. Now, I haven't tried it yet, and I haven't taken
the time to dig into it, but I'm guessing that Class::Load handles the absence of
Class::Load:XS gracefully.
Perhaps this is the case of Class::Load::XS being considered required because without
performance is significantly impacted? if so, then I would rather be able to have a poorly
performing Moose on that platform, rather than no Moose.