Thanks to the very handy Inline::C2XS module, I have finally converted AI::NeuralNet::Simple from Inline::C to XS. This has not only removed a dependency, it has sped up the test suite from 14 seconds to 2 seconds (most of the 14 seconds was spent converting the Inline::C to XS, of course). In the process, I used Perl::MinimumVersion to verify that I could lower the version number of the module to 5.005 from the 5.008 it erroneously had.
Also, after peeking at David Rolsky's XS code for Params::Validate, I found a neat trick to pass the -Wall flag to my compiler if it detects a
I wanted to use Module::Build, but not only could I not figure out how to pass extra flags to the C compiler, I kept getting "Can't locate loadable object for module AI::NeuralNet::Simple in @INC" errors in my tests. I finally gave up and stuck with Makefile.PL, though I should rectify this at some point.