17 hours agoFix test to be EBCDIC friendly blead
Karl Williamson [Fri, 28 Oct 2016 00:58:18 +0000]
Fix test to be EBCDIC friendly

Commit da42332b10691ba7af7550035ffc7f46c87e4e66 introduced a new test.
But on EBCDIC platforms that test doesn't do what it is intended.  It
uses \xE4, assuming it will have a different representation when encoded
in UTF-8, and it is trying to test that having a different
representation still works.  But \xE4 on EBCDIC is a UTF-8 invariant

perlhacktips gives some suggestions on writing tests that work on both
character sets.  In this case \xB6, that is mentioned there, works, as
it is UTF-8 variant on both character sets, and all EBCDIC code pages that
have ever been supported by Perl.

24 hours agoregcomp.c: document the trie common prefix logic
Yves Orton [Thu, 27 Oct 2016 20:35:21 +0000]
regcomp.c: document the trie common prefix logic

I wrote this code some time ago. It is somewhat of
a state machine with some interesting implicit
assumptions which took me a while to remember. While
I do it seems reasonable to document them so the next
guy (maybe/probably me) doesn't have to think so hard.

24 hours agoregcomp.c: avoid some unnecessary work when it wont be used
Yves Orton [Thu, 27 Oct 2016 20:34:49 +0000]
regcomp.c: avoid some unnecessary work when it wont be used

25 hours agoregcomp.c: in trie common prefix logic rename idx to first_ofs
Yves Orton [Thu, 27 Oct 2016 20:32:09 +0000]
regcomp.c: in trie common prefix logic rename idx to first_ofs

Using 'idx' and 'ofs' interchangably is confusing, calling
this first_ofs makes it more obvious what it is used for.

25 hours agoregcomp.c: whitespace only change, break up dense code/long line
Yves Orton [Thu, 27 Oct 2016 20:28:55 +0000]
regcomp.c: whitespace only change, break up dense code/long line

25 hours agoregcomp.c: add a comment about the trie logic
Yves Orton [Thu, 27 Oct 2016 20:28:30 +0000]
regcomp.c: add a comment about the trie logic

25 hours agoregcomp.c: refactor TRIE bitmap logic to a macro
Yves Orton [Thu, 27 Oct 2016 20:26:39 +0000]
regcomp.c: refactor TRIE bitmap logic to a macro

In four places we use the same logic, so refactor
it to one macro called from four places and avoid
any future oversights missing one.

26 hours agooptimise gv.c a bit (we could do better)
Yves Orton [Thu, 27 Oct 2016 18:58:37 +0000]
optimise gv.c a bit (we could do better)

We save a few ops for package vars starting with 'E'
by checking the second char as well. We could
probably be much smarter with this switch, but we
would have to generate it, which involves its own

31 hours agomust check all the EXPORT vars in two places!
Yves Orton [Thu, 27 Oct 2016 13:36:27 +0000]
must check all the EXPORT vars in two places!

(Silence lots of used once warnings we used to not generate)

33 hours agoregcomp.c: fix perl #129950 - fix firstchar bitmap under utf8 with prefix optimisation
Yves Orton [Thu, 27 Oct 2016 11:52:24 +0000]
regcomp.c: fix perl #129950 - fix firstchar bitmap under utf8 with prefix optimisation

The trie code contains a number of sub optimisations, one of which
extracts common prefixes from alternations, and another which isa
bitmap of the possible matching first chars.

The bitmap needs to contain the possible first octets of the string
which the trie can match, and for codepoints which might have a different
first octet under utf8 or non-utf8 need to register BOTH codepoints.

So for instance in the pattern (?:a|a\x{E4}) we should restructure this
as a(|\x{E4), and the bitmap for the trie should contain both \x{E4} AND
\x{C3} as \x{C3} is the first byte of \x{EF} expressed as utf8.

37 hours agoCarp/t/arg_string.t: fixup to previous fixup
David Mitchell [Thu, 27 Oct 2016 08:29:33 +0000]
Carp/t/arg_string.t: fixup to previous fixup

I added alternates to a regex for matching a f/p number, but forgot
to put parentheses around them. So it was being ridiculously over-liberal

37 hours agoCarp/t/arg_string.t: be liberal in f/p formats
David Mitchell [Thu, 27 Oct 2016 08:09:24 +0000]
Carp/t/arg_string.t: be liberal in f/p formats

[perl #129954] dist/Carp/t/arg_string.t: Test fails

This test script checks that args are displayed sensibly in longmess()
output, but floating-point numbers can be displayed in various formats
depending on platform, so make the regex more forgiving.

Also add a comment to the top of the script explaining its purpose.

2 days agolocale.c: Silence compiler warning
Karl Williamson [Wed, 26 Oct 2016 18:20:29 +0000]
locale.c: Silence compiler warning

from some compilers

2 days agolib/locale.t: Skip testing known incompatible locales
Karl Williamson [Mon, 24 Oct 2016 04:03:08 +0000]
lib/locale.t: Skip testing known incompatible locales

Some locales are incompatible with Perl.  The only multi-byte locales
accepted are UTF-8 ones.  ISO 646 locales can have things like a '|' be
a \w, which will create havoc with regular expressions.  This commit
causes locale.t to not test such locales, and to note which ones are
skipped, and why.

If we were to do the tests anyway, it could create segfaults.  For
example locales with state can have their states screwed up by Perl,
which knows nothing about that.  One could argue that the locale should
be immune from bad state, and not segfault, but that is not under Perl's
control, and we will get blamed initially, anyway, when a segfault
happens, so don't test them.

The multi-byte locales are more incompatible with Perl than the 7-bit
locales that aren't ASCII compatible.  So it could be argued that those
should be tested, but I don't want to undertake the work to separate out
the two causes from each other.  The ISO 646 locales are essentially
obsolete, and hence unlikely to be encountered in practice, so there
would be little pay off for doing that work.

2 days agolib/locale.t: Add skip(), fail() functions
Karl Williamson [Mon, 24 Oct 2016 04:02:13 +0000]
lib/locale.t: Add skip(), fail() functions

2 days agot/loc_tools.pl: Make find_locales accept string input
Karl Williamson [Tue, 25 Oct 2016 17:10:15 +0000]
t/loc_tools.pl: Make find_locales accept string input

Prior to this commit, in order to work properly, find_locales required
the C enum number for a locale category.  This relaxes that to allow the
name of the category as well.  Thus it will work seamlessly when a given
category isn't on the platform.  Unless wrapped in an eval, or checked
before using, it was a potential bug to call this function at all.  This
is because it didn't properly handle a string, and trying to find the
locale number might fail on a given platform.

2 days agot/loc_tools.pl: Add 'use strict'
Karl Williamson [Tue, 25 Oct 2016 16:49:01 +0000]
t/loc_tools.pl: Add 'use strict'

2 days agot/loc_tools.pl: Move some code earlier in the file
Karl Williamson [Mon, 24 Oct 2016 23:45:45 +0000]
t/loc_tools.pl: Move some code earlier in the file

This is a simple move, with no changes.  This will make things flow more
logically after a future commit.

2 days agot/loc_tools.pl: Complement sense of optional parameter
Karl Williamson [Mon, 24 Oct 2016 03:27:33 +0000]
t/loc_tools.pl: Complement sense of optional parameter

Most often we want to only look at locales that are compatible with
Perl.  Make that the default for the optional parameter.

2 days agot/loc_tools.pl: Fix not catching incompatible locales
Karl Williamson [Mon, 24 Oct 2016 03:18:20 +0000]
t/loc_tools.pl: Fix not catching incompatible locales

This is looking for a warning generated by the core when a setlocale is
done to one that it deems incompatible with Perl.  However, the warning
isn't generated unless locales are being used, as Perl mostly ignores
locales, so even if the background one is incompatible, it doesn't

2 days agoutf8.c: Silence unused parameter compiler warning
Karl Williamson [Wed, 26 Oct 2016 17:02:46 +0000]
utf8.c: Silence unused parameter compiler warning

2 days agolocale.c: Use meaningful initialization msg
Karl Williamson [Tue, 25 Oct 2016 17:32:38 +0000]
locale.c: Use meaningful initialization msg

This string is initialized to keep it out of BSS.  It is supposed to be
overwritten by the first call to it.  Use a message that informs the
user if there is a bug and the overwriting doesn't work properly.  This
commit is the result of some freebsd releases that don't properly
implement strlcpy.

2 days agolocale.c: Output warning if debugging and 'no warnings'
Karl Williamson [Wed, 26 Oct 2016 18:09:36 +0000]
locale.c: Output warning if debugging and 'no warnings'

This message is helpful if called with -DL, even if warnings are off

2 days agoPATCH: [perl #129964] Fix spelling of "referent" in five places.
Andy Lester [Wed, 26 Oct 2016 17:45:12 +0000]
PATCH: [perl #129964] Fix spelling of "referent" in five places.

2 days agoAdd branch predictors for DEBUG statements
Karl Williamson [Tue, 25 Oct 2016 16:47:23 +0000]
Add branch predictors for DEBUG statements

It is unlikely that any given debug flag will be set in any given run,
even under DEBUGGING builds.

2 days agoperl.h: White-space only
Karl Williamson [Tue, 25 Oct 2016 16:46:42 +0000]
perl.h: White-space only

2 days agopod/perllocale: Add caution about incompatible locales
Karl Williamson [Mon, 24 Oct 2016 04:12:12 +0000]
pod/perllocale: Add caution about incompatible locales

Some locales aren't compatible with Perl.  Note the potential bad
consequences of using them.

2 days agoPATCH: [perl #129277] perlrecharclass: Clarify q// handling
Karl Williamson [Fri, 16 Sep 2016 03:52:44 +0000]
PATCH: [perl #129277] perlrecharclass: Clarify q// handling

See https://rt.perl.org/Ticket/Display.html?id=129277

2 days ago-DsR : display unTEMPed temps with "t" not "T"
David Mitchell [Wed, 26 Oct 2016 16:48:44 +0000]
-DsR : display unTEMPed temps with "t" not "T"

with the -R debugging flag, SVs are displayed with a reference count
(if > 1), and with a T if the SV is referenced from the temps stack.

    $ perl -DstR -e'@a = map $_,"a", "b"'
    *  <T>PV("a"\0)  <T>PV("b"\0)

This commit enhances this to use both "t" and "T":

t:  SV is referenced from PL_tmps_stack, but SvTEMP() not set
T:  SV is referenced from PL_tmps_stack, and in addition, SvTEMP() is set

(The other permutation,  SvTEMP() set but not in PL_tmps_stack, is

This commit changes

2 days agospeed up AV and HV clearing/undeffing
David Mitchell [Wed, 26 Oct 2016 14:59:01 +0000]
speed up AV and HV clearing/undeffing

av_clear(), av_undef(), hv_clear(), hv_undef() and av_make()
all have similar guards along the lines of:

    ... do stuff ...;

to stop the AV or HV leaking or being prematurely freed while processing
its elements (e.g. FETCH() or DESTROY() might do something to it).

Introducing an extra scope and calling leave_scope() is expensive.
Instead, use a trick I introduced in my recent pp_assign() recoding:
add the AV/HV to the temps stack, then at the end of the function,
just PL_tmpx_ix-- if nothing else has been pushed on the tmps stack in the
meantime, or replace the tmps stack slot with &PL_sv_undef otherwise
(which doesn't care how many times its ref count gets decremented).

This is efficient, and doesn't artificially extend the life of the SV
like sv_2mortal() would.

This commit makes this code around 5% faster:

    my @a;
    for my $i (1..3_000_000) {
        @a = (1,2,3);
        @a = ();

and this code around 3% faster:

    my %h;
    for my $i (1..3_000_000) {
        %h = qw(a 1 b 2);
        %h = ();

2 days agot/op/read.t: test with zero-length buffer
David Mitchell [Wed, 26 Oct 2016 14:30:19 +0000]
t/op/read.t: test with zero-length buffer

This test file had:

    my (@values, @buffers) = ('', '');

which isn't doing what the author probably intended. Instead it's testing
twice for the same zero-length value, and not testing at all for a zero
length buffer.

2 days agoNet::Ping: avoid stderr noise in tests
David Mitchell [Wed, 26 Oct 2016 10:58:18 +0000]
Net::Ping: avoid stderr noise in tests

Send status info to STDOUT rather than STDERR.

2 days agoAdd perldelta entries for
David Mitchell [Wed, 26 Oct 2016 08:51:57 +0000]
Add perldelta entries for


2 days agotiearray.t - more fine-grained DESTROY counts
David Mitchell [Fri, 21 Oct 2016 13:42:18 +0000]
tiearray.t - more fine-grained DESTROY counts

It currently tests once near the end of the script that DESTROY has been
called 3 times. Instead test after each individual scope exit
where we expect DESTROY to be called

2 days agoreindent tiearray.t
David Mitchell [Fri, 21 Oct 2016 13:33:54 +0000]
reindent tiearray.t

The indents in this test file were a mixture of 1,2,4, and most
importantly, 0 - which made it very hard to visually see the scope
of lexical vars.

Reindent to a standard 4-char indent.

Also delete trailing whitespace from lines.

Whitespace-only changes

2 days agoHandle list assignment in list context better
David Mitchell [Wed, 19 Oct 2016 08:41:53 +0000]
Handle list assignment in list context better

In something like

    sub inc { $_++ for @_ }
    inc(($a,$b,$c,$d) = (10,20))

The four scalar vars will end up with the values (11,21,1,1), with
the list assign op returning 4 lval scalars to be passed to inc.

However, when the LHS includes a hash or array, any 'empty' scalars weren't
being returned. This:

    inc(($a,$b,@array,$c) = (10))

used to leave $b and $c undefined. With this commit, they are both set to

This change broke some tests in hashassign.t, which were added in 2012
by commit v5.17.6-295-gb1babc5. Half these tests were commented as

    # this arguable, but this is how it works

and they all tested that a scalar following a hash wasn't returned in
lvalue context; i.e. they all assumed that

    inc((%h, $x) = (...))

*wouldn't* increment $x. This commit causes $x to be incremented, and
I've changed the failing tests.

It also adds an EXTEND(SP,1) in the scalar case; otherwise with
scalar( () = @a) and empty @a, it could in theory push the '0' return
value off the end of the stack.

2 days agoBetter optimise array and hash assignment
David Mitchell [Wed, 5 Oct 2016 09:10:56 +0000]
Better optimise array and hash assignment

[perl #127999] Slowdown in split + list assign

Re-implement the code that handles e.g.

    (..., @a) = (...);
    (..., %h) = (...);

to make it a lot faster - more than reversing a performance regression
introduced in 5.24.0 - and fix some bugs. In particular, it now
special-cases an empty RHS, which just clears the aggregate, e.g.

    (..., @a) = ()

Getting list assignment correct is quite tricky, due to the possibility of
premature frees, like @a = ($a[0]), and magic/tied values on the LHS or
RHS being triggered too soon/late, which might have side-effects.  This
often requires making a copy of each RHS element (and indeed for assigning
to an array or hash, the values need copying anyway). But copying too soon
can result in leaked SVs if magic (such as calling FETCH()) dies. This
usually involves mortalising all the copies, which slows things down.

Further, a bug fix in 5.24.0 added the SV_NOSTEAL flag when copying SVs.
This meant in something like @a = (split(...))[0,0], where the two SvTEMPs
on the RHS are the same, the first copy is no longer allowed to steal the
PVX buffer, which would have made the second SV undef. But this means that
PVX buffers are now always copied, which resulted in the slowdown seen in
RT #127999.

Amongst the general rewriting and optimising, this commit does the
following specific things to boost performance (and fix RT #127999).

* If the SVs on the RHS are non-magical SvTEMPs with a ref count of 1, then
the SV isn't copied; instead it is stored directly in the array/hash. This
more than undoes the cost of SV_NOSTEAL.

* The tmps stack is now used as a temporary refcounted version of the
argument stack frame, meaning that args placed there will be freed on
croak.  In something like @a = (....), each RHS element is copied, with
the copy placed on the temps stack. Then @a is cleared. Then the elements
on the tmps stack are stored in the array, and removed from the temps
stack (with the ownership of 1 reference count transferring from the temps
stack to the array). Normally by the time pp_aassign() returns, there is
nothing left on the tmps stack and tmps_free() isn't called - this is the
novel element that distinguishes this from the normal use of mortalising.

* For hash assignment, the keys and values are processed in separate
loops, with keys not normally being copied.

* The ENTER/SAVEFREESV(ary/hash)/LEAVE has been removed, and the array or
hash kept temporarily alive by using the temps stack along with all the
other copied SVs.

* The main 'for each LHS element' loop has been split into two loops: the
second one is run when there no more RHS elements to consume. The second
loop is much simpler, and makes things like @a = () much faster.

Here are the average expr::aassign:: benchmarks for selected perls
(raw numbers - lower is better)

          5.6.1    5.22.0    5.24.0    5.25.5      this
         ------    ------    ------    ------    ------
    Ir   1355.9    1497.8    1387.0    1382.0    1146.6
    Dr    417.2     454.2     410.1     411.1     335.2
    Dw    260.6     270.8     249.0     246.8     194.5
  COND    193.5     223.2     212.0     207.7     174.4
   IND     25.3      17.6      10.8      10.8      10.0

COND_m      4.1       3.1       3.1       3.7       2.8
 IND_m      8.9       6.1       5.5       5.5       5.5

And this code:

    my @a;
    for my $i (1..10_000_000) {
        @a = (1,2,3);
        #@a = ();

with the empty assign is 33% faster than blead, and without is 12% faster
than blead.

2 days agobench.pl: fix --sort and --compact options
David Mitchell [Mon, 10 Oct 2016 16:10:16 +0000]
bench.pl: fix --sort and --compact options

They were using the full pathname of the perl executable to index into
a hash indexed by label.

3 days agoOpenBSD 6 still does not support returning pid, gid or uid with SA_SIGINFO
Andrew Fresh [Tue, 25 Oct 2016 04:14:32 +0000]
OpenBSD 6 still does not support returning pid, gid or uid with SA_SIGINFO

3 days agomake do "a\0b" fail silently instead of throwing (RT #129928)
Lukas Mai [Thu, 20 Oct 2016 22:10:15 +0000]
make do "a\0b" fail silently instead of throwing (RT #129928)

Also remove the label/goto from CLEAR_ERRSV because labels have function
scope, which means you couldn't use CLEAR_ERRSV more than once per
function without getting a "duplicate label" error.

4 days agoRT#129229: move sort_manifest() into its own library
Aaron Crane [Wed, 12 Oct 2016 09:34:13 +0000]
RT#129229: move sort_manifest() into its own library

This means that the MANIFEST.srt target in the Makefile no longer needs
to load a library that depends on Cwd (and other potentially-dynamic
modules). That in turn fixes a missing-dependency bug in the Makefile.

4 days agohv.h: rework HEK_FLAGS to a proper member in struct hek
Todd Rinaldo [Fri, 14 Oct 2016 03:38:31 +0000]
hv.h: rework HEK_FLAGS to a proper member in struct hek

Move the store of HEK_FLAGS off the end of the allocated
hek_key into the hek struct, simplifying access and providing
clarity to the code.

What is not clear is why Nicholas or perhaps Jarkko did
not do this themselves. We use similar tricks elsewhere,
so perhaps it was just continuing a tradition...

One thought is that we often have do strcmp/memeq on these
strings, and having their start be aligned might improve
performance, wheras this patch changes them to be unaligned.
If so perhaps we should just make flags a U32 and let the
HEK's be larger. They are shared in PL_strtab, and are
probably often sitting in malloc blocks that are sufficiently
large enough that making them bigger would make no practical
difference. (All of this is worth checking.)

[with edits by Yves Orton]

4 days ago(perl #129130) make chdir allocate the stack it needs
Tony Cook [Mon, 5 Sep 2016 05:40:11 +0000]
(perl #129130) make chdir allocate the stack it needs

chdir with no argument didn't ensure there was stack space available
for its result.

6 days agoMETA.json regen
Jarkko Hietaniemi [Sat, 22 Oct 2016 19:53:38 +0000]
META.json regen

(Porting/makemeta is not run by 'make regen', apparently)

6 days agoScalar-List-Utils: regen customized.dat
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:58:53 +0000]
Scalar-List-Utils: regen customized.dat

6 days agoScalar-List-Utils: customize Maintainers.pl
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:58:21 +0000]
Scalar-List-Utils: customize Maintainers.pl

6 days agoScalar-List-Utils: customized VERSION bump
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:00:00 +0000]
Scalar-List-Utils: customized VERSION bump

6 days agoScalar-List-Utils: netbsd-vax: no inf/nan
Jarkko Hietaniemi [Sat, 22 Oct 2016 12:42:00 +0000]
Scalar-List-Utils: netbsd-vax: no inf/nan

6 days agoScalar-List-Utils: netbsd-vax: no inf/nan
Jarkko Hietaniemi [Sat, 22 Oct 2016 12:38:56 +0000]
Scalar-List-Utils: netbsd-vax: no inf/nan

6 days agoMath-Complex: regen customized.dat
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:55:39 +0000]
Math-Complex: regen customized.dat

6 days agoMath-Complex: customize Maintainers.pl
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:51:35 +0000]
Math-Complex: customize Maintainers.pl

6 days agoMath-Complex: customized VERSION bump
Jarkko Hietaniemi [Sat, 22 Oct 2016 15:57:42 +0000]
Math-Complex: customized VERSION bump

6 days agoMath-Complex: netbsd-vax: no inf
Jarkko Hietaniemi [Sat, 22 Oct 2016 14:14:03 +0000]
Math-Complex: netbsd-vax: no inf

6 days agoMath-Complex: netbsd-vax: no inf, different range
Jarkko Hietaniemi [Sat, 22 Oct 2016 14:07:44 +0000]
Math-Complex: netbsd-vax: no inf, different range

6 days agoMath-Complex: netbsd-vax: no inf
Jarkko Hietaniemi [Sat, 22 Oct 2016 14:01:52 +0000]
Math-Complex: netbsd-vax: no inf

6 days agoMath-BigInt: regen customized.dat
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:48:48 +0000]
Math-BigInt: regen customized.dat

6 days agoMath-BigInt: Maintainers.pl customization
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:45:40 +0000]
Math-BigInt: Maintainers.pl customization

6 days agoMath-BigInt: customized VERSION bump
Jarkko Hietaniemi [Sat, 22 Oct 2016 15:58:28 +0000]
Math-BigInt: customized VERSION bump

6 days agoMath-BigInt: netbsd-vax: different float range
Jarkko Hietaniemi [Sat, 22 Oct 2016 12:58:30 +0000]
Math-BigInt: netbsd-vax: different float range

6 days agoJSON-PP: regen customized.dat
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:43:06 +0000]
JSON-PP: regen customized.dat

6 days agoJSON-PP: customize Maintainers.pl
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:17:04 +0000]
JSON-PP: customize Maintainers.pl

6 days agoJSON-PP: reformat in preparation for next change
Jarkko Hietaniemi [Sat, 22 Oct 2016 19:48:08 +0000]
JSON-PP: reformat in preparation for next change

6 days agoJSON-PP: customized VERSION bump
Jarkko Hietaniemi [Sat, 22 Oct 2016 15:57:07 +0000]
JSON-PP: customized VERSION bump

6 days agoJSON-PP: netbsd-vax: different float range
Jarkko Hietaniemi [Sat, 22 Oct 2016 14:29:01 +0000]
JSON-PP: netbsd-vax: different float range

6 days agoJSON-PP: netbsd-vax: different float range
Jarkko Hietaniemi [Sat, 22 Oct 2016 14:21:07 +0000]
JSON-PP: netbsd-vax: different float range

6 days agoop.c: silence compiler warning in fold_constants()
Lukas Mai [Sat, 22 Oct 2016 15:48:03 +0000]
op.c: silence compiler warning in fold_constants()

op.c: In function ‘S_fold_constants’:
op.c:4374:28: warning: argument ‘o’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
 S_fold_constants(pTHX_ OP *o)

This warning occurs for non-volatile local variables where the compiler
can't prove that their value doesn't change between setjmp and longjmp
(because the modified value may only be stored in a register which
longjmp overwrites). Adding 'const' apparently convinces the compiler
that no such modification occurs.

6 days agoCheck for echo in new Net::Ping tests.
Craig A. Berry [Sat, 22 Oct 2016 02:04:41 +0000]
Check for echo in new Net::Ping tests.

Net::Ping->new() with no parameters calls

  getservbyname('echo', 'tcp');

and falls down hard if that call does not succeed.  It would be
unusual to be running an echo service on any well-maintained
system on any platform.  On VMS at least, doing a name lookup on
a service that is not configured and enabled returns an error, and
thus any test that uses this ancient default will fail.  So skip
those tests if the getservbyname() fails.

6 days agoPOSIX version bump
Jarkko Hietaniemi [Sat, 22 Oct 2016 00:20:29 +0000]
POSIX version bump

6 days agovax-netbsd: no nan
Jarkko Hietaniemi [Fri, 21 Oct 2016 13:16:28 +0000]
vax-netbsd: no nan

6 days agovax-netbsd: do not tempt fp overflow, which will SIGFPE
Jarkko Hietaniemi [Fri, 21 Oct 2016 13:05:25 +0000]
vax-netbsd: do not tempt fp overflow, which will SIGFPE

The 3e100 seems to have no special meaning, except being in floating point.

6 days agovax-netbsd: no PL_inf/PL_nan to export
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:58:38 +0000]
vax-netbsd: no PL_inf/PL_nan to export

6 days agovax-netbsd: do not test for inf/nan
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:54:07 +0000]
vax-netbsd: do not test for inf/nan

6 days agovax-netbsd: test non-IEEE-754-ness only once
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:44:04 +0000]
vax-netbsd: test non-IEEE-754-ness only once

6 days agovax-netbsd: set the RETVAL even if unused
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:40:02 +0000]
vax-netbsd: set the RETVAL even if unused

6 days agoConfigure: signbit scan assuming too much
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:33:16 +0000]
Configure: signbit scan assuming too much

It was assuming a negative zero, which is an IEEE-754 only concept.

There is no need to assume the negative zero for the correct
functioning of the signbit, however.

6 days agovax-netbsd: another negative zero assumption
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:29:27 +0000]
vax-netbsd: another negative zero assumption

Though this had been masked by NV_INF guard.

6 days agovax-netbsd: Negative zero is only a thing IEEE 754.
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:27:47 +0000]
vax-netbsd: Negative zero is only a thing IEEE 754.

So don't assume it universal in the signbit emulation.

For non-IEEE-754, negative zero is equal to the positive zero.

(Another matter is that signbit() should have been found
in the Configure scan; it does exist in the netbsd/vax.)

6 days agovax-netbsd: expand lround() and signbit testing
Jarkko Hietaniemi [Fri, 21 Oct 2016 11:59:20 +0000]
vax-netbsd: expand lround() and signbit testing

6 days agoThe 1994b214 made the test dependent on Tie::Hash::NamedCapture.
Jarkko Hietaniemi [Fri, 21 Oct 2016 13:30:32 +0000]
The 1994b214 made the test dependent on Tie::Hash::NamedCapture.

Which is not available under miniperl.

To add to the fun, tie() is partly compile-time, so just simple
skipping is not enough.

6 days agot/uni/overload.t: Skip hanging test on FreeBSD
Dan Collins [Fri, 21 Oct 2016 14:13:33 +0000]
t/uni/overload.t: Skip hanging test on FreeBSD

This is a test that overflows the C stack though infinite
recursion. Unfortunately, FreeBSD doesn't seem to overflow the
stack as much as it overflows main memory. On my FreeBSD 12 VM,
it uses all available swap and hangs. This patch skips it only
for FreeBSD.

7 days agoAPItest/t/utf8.t: Fix a test on EBCDIC
Karl Williamson [Fri, 21 Oct 2016 19:27:55 +0000]
APItest/t/utf8.t: Fix a test on EBCDIC

I forgot to translate this to EBCDIC, so created massive failures there,
obscuring the real bugs.

7 days agoMove _pDEPTH and _aDEPTH after config.h.
Craig A. Berry [Fri, 21 Oct 2016 18:32:16 +0000]
Move _pDEPTH and _aDEPTH after config.h.

Otherwise DEBUGGING may not be defined yet (at least it isn't on

7 days agoUpdate Module::Corelist with entries for 5.25.7
Aaron Crane [Fri, 21 Oct 2016 07:31:26 +0000]
Update Module::Corelist with entries for 5.25.7

7 days agot/op/blocks.t: tests for RT #113934
Dan Collins [Wed, 21 Sep 2016 14:08:26 +0000]
t/op/blocks.t: tests for RT #113934

7 days agot/op/goto.t: tests for RT #45091
Dan Collins [Sat, 16 Jul 2016 22:49:34 +0000]
t/op/goto.t: tests for RT #45091

7 days agot/lib/overload_fallback.t: tests for RT #43356
Dan Collins [Sat, 16 Jul 2016 03:34:21 +0000]
t/lib/overload_fallback.t: tests for RT #43356

7 days agot/op/threads.t: tests for RT #41121
Dan Collins [Thu, 14 Jul 2016 20:23:52 +0000]
t/op/threads.t: tests for RT #41121

7 days agot/op/threads.t: tests for RT #36664
Dan Collins [Fri, 8 Jul 2016 02:56:38 +0000]
t/op/threads.t: tests for RT #36664

7 days agot/re/subst.t: tests for RT #23624
Dan Collins [Tue, 5 Jul 2016 23:32:56 +0000]
t/re/subst.t: tests for RT #23624

7 days agot/re/pat.t: tests for RT #21491
Dan Collins [Tue, 5 Jul 2016 20:29:10 +0000]
t/re/pat.t: tests for RT #21491

7 days agot/lib/warnings/op: tests for RT #6870
Dan Collins [Mon, 4 Jul 2016 23:33:29 +0000]
t/lib/warnings/op: tests for RT #6870

7 days agot/op/local.t: tests for RT #7615
Dan Collins [Mon, 4 Jul 2016 17:45:37 +0000]
t/op/local.t: tests for RT #7615

7 days agot/io/socket.t: tests for RT #7614
Dan Collins [Mon, 4 Jul 2016 17:36:45 +0000]
t/io/socket.t: tests for RT #7614

7 days agot/op/local.t: tests for RT #7411
Dan Collins [Mon, 4 Jul 2016 17:18:21 +0000]
t/op/local.t: tests for RT #7411

7 days agot/op/caller.t: tests for RT #7165
Dan Collins [Mon, 4 Jul 2016 16:15:32 +0000]
t/op/caller.t: tests for RT #7165

7 days agot/op/die.t: tests for RT #4821
Dan Collins [Mon, 4 Jul 2016 02:43:49 +0000]
t/op/die.t: tests for RT #4821

7 days agot/lib/warnings/toke: tests for RT #4346
Dan Collins [Mon, 4 Jul 2016 01:51:58 +0000]
t/lib/warnings/toke: tests for RT #4346

7 days agot/op/attrs.t: tests for RT 3605
Dan Collins [Mon, 4 Jul 2016 00:18:12 +0000]
t/op/attrs.t: tests for RT 3605

Maybe this should be in a different file?

7 days agot/op/bless.t: tests for RT #3305 and RT #3306
Dan Collins [Sun, 3 Jul 2016 20:38:00 +0000]
t/op/bless.t: tests for RT #3305 and RT #3306

7 days agot/uni/overload.t: test for RT #3270
Dan Collins [Sun, 3 Jul 2016 23:09:04 +0000]
t/uni/overload.t: test for RT #3270