6 hours agoregcomp.c: fix perl #129950 - fix firstchar bitmap under utf8 with prefix optimisation blead
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.

10 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

10 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.

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

from some compilers

24 hours 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.

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

24 hours 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.

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

24 hours 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.

24 hours 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.

24 hours 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

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

24 hours 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.

24 hours 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

24 hours 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.

24 hours 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.

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

24 hours 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.

24 hours 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

25 hours 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

27 hours 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 = ();

28 hours 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.

31 hours 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.

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


35 hours 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

35 hours 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

35 hours 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.

35 hours 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.

35 hours 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.

2 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

2 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.

3 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.

3 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]

3 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.

4 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)

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

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

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

4 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

4 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

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

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

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

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

4 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

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

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

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

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

4 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

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

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

4 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

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

4 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

4 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

5 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.

5 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.

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

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

5 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.

5 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

5 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

5 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

5 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

5 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.

5 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.

5 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.)

5 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

5 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.

5 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.

5 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.

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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?

6 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

6 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

6 days agot/uni/overload.t: test for RT 3054: might segfault.
Dan Collins [Sun, 3 Jul 2016 22:53:27 +0000]
t/uni/overload.t: test for RT 3054: might segfault.

This one may be a bit dangerous. It is also one of many bugs
involving a segfault due to a C stack overflow.

6 days agot/op/blocks.t: add test for RT #2917
Dan Collins [Sun, 3 Jul 2016 22:13:45 +0000]
t/op/blocks.t: add test for RT #2917

6 days agot/op/blocks.t: add test for RT #2754
Dan Collins [Sun, 3 Jul 2016 22:00:23 +0000]
t/op/blocks.t: add test for RT #2754

6 days agot/op/for.t: RT #2166: Actually run the test so we know if behavior changes
Dan Collins [Sun, 3 Jul 2016 20:57:07 +0000]
t/op/for.t: RT #2166: Actually run the test so we know if behavior changes

6 days agot/op/local.t: Unknown RT#, but appears to be fixed. Blame says not edited since 2005.
Dan Collins [Sun, 3 Jul 2016 21:06:41 +0000]
t/op/local.t: Unknown RT#, but appears to be fixed. Blame says not edited since 2005.

6 days agot/op/for.t: RT #1085: ticket 'resolved' but test was still 'todo'
Dan Collins [Sun, 3 Jul 2016 21:01:04 +0000]
t/op/for.t: RT #1085: ticket 'resolved' but test was still 'todo'

6 days agot/op/attrs.t: Fixup for 7fe45fb9 - should be a semicolon
Dan Collins [Thu, 20 Oct 2016 16:37:15 +0000]
t/op/attrs.t: Fixup for 7fe45fb9 - should be a semicolon

6 days agopp_ctl.c: silence compiler warning about mixing (un)signed types
Lukas Mai [Thu, 20 Oct 2016 22:20:23 +0000]
pp_ctl.c: silence compiler warning about mixing (un)signed types

Commit d081a35540aca5fe changed PADOFFSET (the type of op_targ) to
SSize_t (a signed type). It used to be unsigned.

pp_ctl.c: In function ‘S_doeval_compile’:
pp_ctl.c:3350:31: warning: signed and unsigned type in conditional expression [-Wsign-compare]
        ? oldcurcop->cop_hints : saveop->op_targ;

7 days agothe test for #129897 was missing the min-mod (?) on the dot star
Yves Orton [Thu, 20 Oct 2016 16:20:20 +0000]
the test for #129897 was missing the min-mod (?) on the dot star

A plain .* will make the pattern match skip the bug we
are testing for. We need .*? to see the difference

./perl -Ilib -le'"riiaan"=~/(.*?(a(a)|i(i))n)/ and print "$2-$3-$4-$1"'

perl -le'"riiaan"=~/(.*?(a(a)|i(i))n)/ and print "$2-$3-$4-$1"'

Maybe the test could make this more explicit. Not sure if its
worth it.

Thanks to Aaron Crane for noticing the test didn't do what it was
meant to. Bad Yves.