Chad Granum wrote:
I have no objections to having OPTIONAL XS available to speed things up for people who want it. However I will not accept making XS a requirement. I thought that since Scalar::Util::weaken was in core that there would be no issues using it in a core module.

Core includes XS modules. You relied on an XS module, see below.

If using weaken makes Test-Simple non-corable, then I will use a slightly alternate design.

Current new Test::Simple is slightly slower than legacy, will your non-weaken solution make new Test::Simple twice as slow as legacy? Because of the rjbs post that supposedly (someone else should confirm this) minitest does not use Test::*, new Test::Simple can use all the XS it wants. Maybe you want to change the design rule and say XS is mandatory to run new Test::More, but also remember, legacy Test::Simple doesn't require XS. There are 2 levels of "requires XS", 1 is to say you must have a working C compiler to install new Test::Simple, the other level is to say, at some point in the past you or your predecessor must have had access to a C compiler to build the core XS modules. If your platform's perl doesn't have DynaLoader, or if your OS vendor/IT dept decided to only distribute XS-free core modules, then sorry, new Test::Simple is not supported on your system (must have working Scalar::Util).

To prove new Test::Simple requires XS, I ran.

---------------------------------------------------------
C:\perl521\srcnewb4opt>miniperl -IC:\sources\testmorenew\lib -Ilib -MTest::More
-e"0"
Can't load module List::Util, dynamic loading not available in this perl.
  (You may need to build a new perl executable which either supports
  dynamic loading or has the List::Util module statically linked into it.)
 at lib/Scalar/Util.pm line 11.
Compilation failed in require at lib/Scalar/Util.pm line 11.
Compilation failed in require at C:\sources\testmorenew\lib/Test/Stream/Util.pm line 5. BEGIN failed--compilation aborted at C:\sources\testmorenew\lib/Test/Stream/Util.pm line 5. Compilation failed in require at C:\sources\testmorenew\lib/Test/Stream.pm line 9. BEGIN failed--compilation aborted at C:\sources\testmorenew\lib/Test/Stream.pm line 9. Compilation failed in require at C:\sources\testmorenew\lib/Test/More.pm line 10. BEGIN failed--compilation aborted at C:\sources\testmorenew\lib/Test/More.pm line 10.
Compilation failed in require.
BEGIN failed--compilation aborted.


C:\perl521\srcnewb4opt>
---------------------------------------------------------

Legacy doesn't requre XS

---------------------------------------------------------
C:\perl521\srcnewb4opt>miniperl -Ilib -MTest::More -e"0"

C:\perl521\srcnewb4opt>
---------------------------------------------------------

So what is your (exodist) design rule, atleast for now, on XS and new Test::Simple?

Reply via email to