develooper Front page | perl.qa | Postings from April 2015

Re: new Stream Test::Simple question, XS requirement

Thread Previous
From:
Chad Granum
Date:
April 26, 2015 04:39
Subject:
Re: new Stream Test::Simple question, XS requirement
Message ID:
CAJFr3ktrNL2fubesOp-+NuF2wZFGyXMNKkKU1znkE8f5DjMXYQ@mail.gmail.com
Just to also be clear. My alternate implementation would be a fallback. If
scalar::util works it uses it, if not it falls back to a slightly different
system. The switch would happen when Context.pm is loaded. So even if the
fallback is slightly slower, few if any systems would ever experience it.
The fallback I have in mind also maintains the exact same interface, so it
would be seamless to users, and does not deviate from the current context
usage in any way.
On Apr 25, 2015 9:15 PM, "Chad Granum" <exodist7@gmail.com> wrote:

> I am not sure it is entirely my decision. If it is entirely my decision
> than this is it:
> Must have a working scalar::util::weaken to use the new Test::Simple. The
> Test-Simple dist itself will not require a c compiler to install, as in no
> xs is included in the dist. A Test-Simple-XS dist may be created if desired
> that will be used by Test-Simple if it is installed, but it will not be a
> requirement. Up to rjbs and p5p as to of the xs components will  be part of
> core.
>
> However I want to know how the rest of perl-qa feels about this first. If
> people are not bothered by using scalar::util then we have no problem. If
> they are bothered by scalar::util being used then we need to look at
> options.
>
> Does anyone have a strong opinion about Test-Simple needing scalar::util?
> On Apr 25, 2015 8:57 PM, "bulk88" <bulk88@hotmail.com> wrote:
>
>> 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?
>>
>

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About