This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Jarkko Hietaniemi [Fri, 28 Oct 2016 23:42:10 +0000 (19:42 -0400)]
Archive-Tar: customized version bump
Jarkko Hietaniemi [Fri, 28 Oct 2016 23:38:46 +0000 (19:38 -0400)]
Archive-Tar: detect if external tar fails
Craig A. Berry [Fri, 28 Oct 2016 22:58:03 +0000 (18:58 -0400)]
Archive-Tar: in VMS gnutar requires filenames in native format
Jarkko Hietaniemi [Fri, 28 Oct 2016 12:32:23 +0000 (08:32 -0400)]
Archive-Tar: RT #118476: scan for the right tar more robustly
(1) Do not assume it is called 'tar'.
(2) Do not assume it has the compression features.
(3) Do not assume there is only one 'tar'.
(4) Do not assume the first one found has the compression features.
(5) Add the platform executable suffix to the name.
Karl Williamson [Fri, 28 Oct 2016 00:58:18 +0000 (18:58 -0600)]
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
(CAPITAL U).
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.
Yves Orton [Thu, 27 Oct 2016 20:35:21 +0000 (22:35 +0200)]
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.
Yves Orton [Thu, 27 Oct 2016 20:34:49 +0000 (22:34 +0200)]
regcomp.c: avoid some unnecessary work when it wont be used
Yves Orton [Thu, 27 Oct 2016 20:32:09 +0000 (22:32 +0200)]
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.
Yves Orton [Thu, 27 Oct 2016 20:28:55 +0000 (22:28 +0200)]
regcomp.c: whitespace only change, break up dense code/long line
Yves Orton [Thu, 27 Oct 2016 20:28:30 +0000 (22:28 +0200)]
regcomp.c: add a comment about the trie logic
Yves Orton [Thu, 27 Oct 2016 20:26:39 +0000 (22:26 +0200)]
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.
Yves Orton [Thu, 27 Oct 2016 18:58:37 +0000 (20:58 +0200)]
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
issues.
Yves Orton [Thu, 27 Oct 2016 13:36:27 +0000 (15:36 +0200)]
must check all the EXPORT vars in two places!
(Silence lots of used once warnings we used to not generate)
Yves Orton [Thu, 27 Oct 2016 11:52:24 +0000 (13:52 +0200)]
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.
David Mitchell [Thu, 27 Oct 2016 08:29:33 +0000 (09:29 +0100)]
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
David Mitchell [Thu, 27 Oct 2016 08:09:24 +0000 (09:09 +0100)]
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.
Karl Williamson [Wed, 26 Oct 2016 18:20:29 +0000 (12:20 -0600)]
locale.c: Silence compiler warning
from some compilers
Karl Williamson [Mon, 24 Oct 2016 04:03:08 +0000 (22:03 -0600)]
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.
Karl Williamson [Mon, 24 Oct 2016 04:02:13 +0000 (22:02 -0600)]
lib/locale.t: Add skip(), fail() functions
Karl Williamson [Tue, 25 Oct 2016 17:10:15 +0000 (11:10 -0600)]
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.
Karl Williamson [Tue, 25 Oct 2016 16:49:01 +0000 (10:49 -0600)]
t/loc_tools.pl: Add 'use strict'
Karl Williamson [Mon, 24 Oct 2016 23:45:45 +0000 (17:45 -0600)]
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.
Karl Williamson [Mon, 24 Oct 2016 03:27:33 +0000 (21:27 -0600)]
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.
Karl Williamson [Mon, 24 Oct 2016 03:18:20 +0000 (21:18 -0600)]
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
matter.
Karl Williamson [Wed, 26 Oct 2016 17:02:46 +0000 (11:02 -0600)]
utf8.c: Silence unused parameter compiler warning
Karl Williamson [Tue, 25 Oct 2016 17:32:38 +0000 (11:32 -0600)]
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.
Karl Williamson [Wed, 26 Oct 2016 18:09:36 +0000 (12:09 -0600)]
locale.c: Output warning if debugging and 'no warnings'
This message is helpful if called with -DL, even if warnings are off
Andy Lester [Wed, 26 Oct 2016 17:45:12 +0000 (11:45 -0600)]
PATCH: [perl #129964] Fix spelling of "referent" in five places.
Karl Williamson [Tue, 25 Oct 2016 16:47:23 +0000 (10:47 -0600)]
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.
Karl Williamson [Tue, 25 Oct 2016 16:46:42 +0000 (10:46 -0600)]
perl.h: White-space only
Karl Williamson [Mon, 24 Oct 2016 04:12:12 +0000 (22:12 -0600)]
pod/perllocale: Add caution about incompatible locales
Some locales aren't compatible with Perl. Note the potential bad
consequences of using them.
Karl Williamson [Fri, 16 Sep 2016 03:52:44 +0000 (21:52 -0600)]
PATCH: [perl #129277] perlrecharclass: Clarify q// handling
See https://rt.perl.org/Ticket/Display.html?id=129277
David Mitchell [Wed, 26 Oct 2016 16:48:44 +0000 (17:48 +0100)]
-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.
E.g.
$ 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
illegal).
This commit changes
David Mitchell [Wed, 26 Oct 2016 14:59:01 +0000 (15:59 +0100)]
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:
ENTER;
SAVEFREESV(SvREFCNT_inc_simple_NN(av));
... do stuff ...;
LEAVE;
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 = ();
}
David Mitchell [Wed, 26 Oct 2016 14:30:19 +0000 (15:30 +0100)]
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.
David Mitchell [Wed, 26 Oct 2016 10:58:18 +0000 (11:58 +0100)]
Net::Ping: avoid stderr noise in tests
Send status info to STDOUT rather than STDERR.
David Mitchell [Wed, 26 Oct 2016 08:51:57 +0000 (09:51 +0100)]
David Mitchell [Fri, 21 Oct 2016 13:42:18 +0000 (14:42 +0100)]
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
David Mitchell [Fri, 21 Oct 2016 13:33:54 +0000 (14:33 +0100)]
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
David Mitchell [Wed, 19 Oct 2016 08:41:53 +0000 (09:41 +0100)]
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
1.
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.
David Mitchell [Wed, 5 Oct 2016 09:10:56 +0000 (10:10 +0100)]
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.
David Mitchell [Mon, 10 Oct 2016 16:10:16 +0000 (17:10 +0100)]
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.
Andrew Fresh [Tue, 25 Oct 2016 04:14:32 +0000 (15:14 +1100)]
OpenBSD 6 still does not support returning pid, gid or uid with SA_SIGINFO
Lukas Mai [Thu, 20 Oct 2016 22:10:15 +0000 (00:10 +0200)]
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.
Aaron Crane [Wed, 12 Oct 2016 09:34:13 +0000 (10:34 +0100)]
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.
Todd Rinaldo [Fri, 14 Oct 2016 03:38:31 +0000 (22:38 -0500)]
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]
Tony Cook [Mon, 5 Sep 2016 05:40:11 +0000 (15:40 +1000)]
(perl #129130) make chdir allocate the stack it needs
chdir with no argument didn't ensure there was stack space available
for its result.
Jarkko Hietaniemi [Sat, 22 Oct 2016 19:53:38 +0000 (15:53 -0400)]
META.json regen
(Porting/makemeta is not run by 'make regen', apparently)
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:58:53 +0000 (12:58 -0400)]
Scalar-List-Utils: regen customized.dat
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:58:21 +0000 (12:58 -0400)]
Scalar-List-Utils: customize Maintainers.pl
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:00:00 +0000 (12:00 -0400)]
Scalar-List-Utils: customized VERSION bump
Jarkko Hietaniemi [Sat, 22 Oct 2016 12:42:00 +0000 (08:42 -0400)]
Scalar-List-Utils: netbsd-vax: no inf/nan
Jarkko Hietaniemi [Sat, 22 Oct 2016 12:38:56 +0000 (08:38 -0400)]
Scalar-List-Utils: netbsd-vax: no inf/nan
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:55:39 +0000 (12:55 -0400)]
Math-Complex: regen customized.dat
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:51:35 +0000 (12:51 -0400)]
Math-Complex: customize Maintainers.pl
Jarkko Hietaniemi [Sat, 22 Oct 2016 15:57:42 +0000 (11:57 -0400)]
Math-Complex: customized VERSION bump
Jarkko Hietaniemi [Sat, 22 Oct 2016 14:14:03 +0000 (10:14 -0400)]
Math-Complex: netbsd-vax: no inf
Jarkko Hietaniemi [Sat, 22 Oct 2016 14:07:44 +0000 (10:07 -0400)]
Math-Complex: netbsd-vax: no inf, different range
Jarkko Hietaniemi [Sat, 22 Oct 2016 14:01:52 +0000 (10:01 -0400)]
Math-Complex: netbsd-vax: no inf
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:48:48 +0000 (12:48 -0400)]
Math-BigInt: regen customized.dat
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:45:40 +0000 (12:45 -0400)]
Math-BigInt: Maintainers.pl customization
Jarkko Hietaniemi [Sat, 22 Oct 2016 15:58:28 +0000 (11:58 -0400)]
Math-BigInt: customized VERSION bump
Jarkko Hietaniemi [Sat, 22 Oct 2016 12:58:30 +0000 (08:58 -0400)]
Math-BigInt: netbsd-vax: different float range
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:43:06 +0000 (12:43 -0400)]
JSON-PP: regen customized.dat
Jarkko Hietaniemi [Sat, 22 Oct 2016 16:17:04 +0000 (12:17 -0400)]
JSON-PP: customize Maintainers.pl
Jarkko Hietaniemi [Sat, 22 Oct 2016 19:48:08 +0000 (15:48 -0400)]
JSON-PP: reformat in preparation for next change
Jarkko Hietaniemi [Sat, 22 Oct 2016 15:57:07 +0000 (11:57 -0400)]
JSON-PP: customized VERSION bump
Jarkko Hietaniemi [Sat, 22 Oct 2016 14:29:01 +0000 (10:29 -0400)]
JSON-PP: netbsd-vax: different float range
Jarkko Hietaniemi [Sat, 22 Oct 2016 14:21:07 +0000 (10:21 -0400)]
JSON-PP: netbsd-vax: different float range
Lukas Mai [Sat, 22 Oct 2016 15:48:03 +0000 (17:48 +0200)]
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.
Craig A. Berry [Sat, 22 Oct 2016 02:04:41 +0000 (21:04 -0500)]
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.
Jarkko Hietaniemi [Sat, 22 Oct 2016 00:20:29 +0000 (20:20 -0400)]
POSIX version bump
Jarkko Hietaniemi [Fri, 21 Oct 2016 13:16:28 +0000 (09:16 -0400)]
vax-netbsd: no nan
Jarkko Hietaniemi [Fri, 21 Oct 2016 13:05:25 +0000 (09:05 -0400)]
vax-netbsd: do not tempt fp overflow, which will SIGFPE
The 3e100 seems to have no special meaning, except being in floating point.
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:58:38 +0000 (08:58 -0400)]
vax-netbsd: no PL_inf/PL_nan to export
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:54:07 +0000 (08:54 -0400)]
vax-netbsd: do not test for inf/nan
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:44:04 +0000 (08:44 -0400)]
vax-netbsd: test non-IEEE-754-ness only once
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:40:02 +0000 (08:40 -0400)]
vax-netbsd: set the RETVAL even if unused
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:33:16 +0000 (08:33 -0400)]
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.
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:29:27 +0000 (08:29 -0400)]
vax-netbsd: another negative zero assumption
Though this had been masked by NV_INF guard.
Jarkko Hietaniemi [Fri, 21 Oct 2016 12:27:47 +0000 (08:27 -0400)]
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.)
Jarkko Hietaniemi [Fri, 21 Oct 2016 11:59:20 +0000 (07:59 -0400)]
vax-netbsd: expand lround() and signbit testing
Jarkko Hietaniemi [Fri, 21 Oct 2016 13:30:32 +0000 (09:30 -0400)]
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.
Dan Collins [Fri, 21 Oct 2016 14:13:33 +0000 (14:13 +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.
Karl Williamson [Fri, 21 Oct 2016 19:27:55 +0000 (13:27 -0600)]
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.
Craig A. Berry [Fri, 21 Oct 2016 18:32:16 +0000 (13:32 -0500)]
Move _pDEPTH and _aDEPTH after config.h.
Otherwise DEBUGGING may not be defined yet (at least it isn't on
VMS).
Aaron Crane [Fri, 21 Oct 2016 07:31:26 +0000 (08:31 +0100)]
Update Module::Corelist with entries for 5.25.7
Dan Collins [Wed, 21 Sep 2016 14:08:26 +0000 (10:08 -0400)]
t/op/blocks.t: tests for RT #113934
Dan Collins [Sat, 16 Jul 2016 22:49:34 +0000 (18:49 -0400)]
t/op/goto.t: tests for RT #45091
Dan Collins [Sat, 16 Jul 2016 03:34:21 +0000 (23:34 -0400)]
t/lib/overload_fallback.t: tests for RT #43356
Dan Collins [Thu, 14 Jul 2016 20:23:52 +0000 (16:23 -0400)]
t/op/threads.t: tests for RT #41121
Dan Collins [Fri, 8 Jul 2016 02:56:38 +0000 (22:56 -0400)]
t/op/threads.t: tests for RT #36664
Dan Collins [Tue, 5 Jul 2016 23:32:56 +0000 (19:32 -0400)]
t/re/subst.t: tests for RT #23624
Dan Collins [Tue, 5 Jul 2016 20:29:10 +0000 (16:29 -0400)]
t/re/pat.t: tests for RT #21491
Dan Collins [Mon, 4 Jul 2016 23:33:29 +0000 (19:33 -0400)]
t/lib/warnings/op: tests for RT #6870
Dan Collins [Mon, 4 Jul 2016 17:45:37 +0000 (13:45 -0400)]
t/op/local.t: tests for RT #7615
Dan Collins [Mon, 4 Jul 2016 17:36:45 +0000 (13:36 -0400)]
t/io/socket.t: tests for RT #7614
Dan Collins [Mon, 4 Jul 2016 17:18:21 +0000 (13:18 -0400)]
t/op/local.t: tests for RT #7411
Dan Collins [Mon, 4 Jul 2016 16:15:32 +0000 (12:15 -0400)]
t/op/caller.t: tests for RT #7165
Dan Collins [Mon, 4 Jul 2016 02:43:49 +0000 (22:43 -0400)]
t/op/die.t: tests for RT #4821