Hi all. I have recently uploaded a module to CPAN, Math::Derivative_XS
that provides a C/XS optimised version of one of the functions in Math::Derivative
(with more to follow).
I'm wondering what people think about the following questions:
- Putting XS in a separate module - I think it's a good idea since it leaves the base module Pure Perl.
- Naming such a module by adding _XS on the end - seems to be the defacto standard
- Having the module inherit from the Pure Perl version vs. being purely standalone - in this case I only implement one function, so requiring the parent module as a dependency is required anyway to defer those functions.
- Best practise for testing - my XS module has a test to check for any regressions compared to the Pure Perl base. I would suggest this as a best practise, but in this case the parent module unfortunately has no tests at all. So I guess my question is when I do write some proper tests, should they go into the _XS module that I manage or (more probably) should I put them into the base Pure Perl package (and then by implication the regression tests in the _XS module will in effect be validating those tests).
Any other thoughts also welcome!