This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
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
Dan Collins [Mon, 4 Jul 2016 01:51:58 +0000 (21:51 -0400)]
t/lib/warnings/toke: tests for RT #4346
Dan Collins [Mon, 4 Jul 2016 00:18:12 +0000 (20:18 -0400)]
t/op/attrs.t: tests for RT 3605
Maybe this should be in a different file?
Dan Collins [Sun, 3 Jul 2016 20:38:00 +0000 (16:38 -0400)]
t/op/bless.t: tests for RT #3305 and RT #3306
Dan Collins [Sun, 3 Jul 2016 23:09:04 +0000 (19:09 -0400)]
t/uni/overload.t: test for RT #3270
Dan Collins [Sun, 3 Jul 2016 22:53:27 +0000 (18:53 -0400)]
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.
Dan Collins [Sun, 3 Jul 2016 22:13:45 +0000 (18:13 -0400)]
t/op/blocks.t: add test for RT #2917
Dan Collins [Sun, 3 Jul 2016 22:00:23 +0000 (18:00 -0400)]
t/op/blocks.t: add test for RT #2754
Dan Collins [Sun, 3 Jul 2016 20:57:07 +0000 (16:57 -0400)]
t/op/for.t: RT #2166: Actually run the test so we know if behavior changes
Dan Collins [Sun, 3 Jul 2016 21:06:41 +0000 (17:06 -0400)]
t/op/local.t: Unknown RT#, but appears to be fixed. Blame says not edited since 2005.
Dan Collins [Sun, 3 Jul 2016 21:01:04 +0000 (17:01 -0400)]
t/op/for.t: RT #1085: ticket 'resolved' but test was still 'todo'
Dan Collins [Thu, 20 Oct 2016 16:37:15 +0000 (12:37 -0400)]
t/op/attrs.t: Fixup for
7fe45fb9 - should be a semicolon
Lukas Mai [Thu, 20 Oct 2016 22:20:23 +0000 (00:20 +0200)]
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;
^
Yves Orton [Thu, 20 Oct 2016 16:20:20 +0000 (18:20 +0200)]
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
Fixed:
./perl -Ilib -le'"riiaan"=~/(.*?(a(a)|i(i))n)/ and print "$2-$3-$4-$1"'
aa-a--riiaan
Broken:
perl -le'"riiaan"=~/(.*?(a(a)|i(i))n)/ and print "$2-$3-$4-$1"'
aa-a-i-riiaan
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.
Aaron Crane [Thu, 20 Oct 2016 16:06:35 +0000 (17:06 +0100)]
Bump version numbers ready for 5.25.7
Aaron Crane [Thu, 20 Oct 2016 15:59:30 +0000 (16:59 +0100)]
New perldelta for 5.25.7
Aaron Crane [Thu, 20 Oct 2016 15:55:36 +0000 (16:55 +0100)]
Tick the 5.25.6 release
Aaron Crane [Thu, 20 Oct 2016 15:54:59 +0000 (16:54 +0100)]
Add epigraph for 5.25.6
Aaron Crane [Thu, 20 Oct 2016 15:49:19 +0000 (16:49 +0100)]
Merge branch 'release-5.25.6' into blead
Aaron Crane [Thu, 20 Oct 2016 14:32:11 +0000 (15:32 +0100)]
Add 5.25.6 release to perlhist
Aaron Crane [Thu, 20 Oct 2016 14:24:41 +0000 (15:24 +0100)]
Finalise perldelta for 5.25.6
Aaron Crane [Thu, 20 Oct 2016 13:40:50 +0000 (14:40 +0100)]
Update Module::CoreList for 5.25.6
Aaron Crane [Thu, 20 Oct 2016 13:33:14 +0000 (14:33 +0100)]
Update 5.25.6 release date in Module::CoreList
Dagfinn Ilmari Mannsåker [Thu, 20 Oct 2016 13:50:16 +0000 (14:50 +0100)]
Revert "Include time.h when testing for clock_xxx functions and syscalls"
This was meant to go on my smoke-me branch, not blead.
This reverts commit
1946ca1569f5d47e6ceffab716bce3a4169646fe.
Chris 'BinGOs' Williams [Thu, 20 Oct 2016 12:39:53 +0000 (13:39 +0100)]
Update Archive-Tar to CPAN version 2.14
[DELTA]
2.14 20/10/2016
- Fix roundtrip test when tar executable is absent
Aaron Crane [Thu, 20 Oct 2016 12:33:35 +0000 (13:33 +0100)]
perldelta: delete unneeded sections
Aaron Crane [Thu, 20 Oct 2016 12:33:00 +0000 (13:33 +0100)]
perldelta: draft for commits up to
3cc6a05eed
Dagfinn Ilmari Mannsåker [Thu, 20 Oct 2016 12:29:50 +0000 (13:29 +0100)]
Include time.h when testing for clock_xxx functions and syscalls
Lukas Mai [Thu, 20 Oct 2016 11:29:31 +0000 (13:29 +0200)]
perly.y: remove redundant NULL casts
Lukas Mai [Thu, 20 Oct 2016 10:57:39 +0000 (12:57 +0200)]
libperl.t: treat i686 arch the same as x86
Lukas Mai [Sun, 16 Oct 2016 01:14:07 +0000 (03:14 +0200)]
toke.c: remove redundant (OP *) casts
Lukas Mai [Sun, 16 Oct 2016 01:03:23 +0000 (03:03 +0200)]
toke.c: get rid of "if (0)"
Karl Williamson [Thu, 20 Oct 2016 03:20:48 +0000 (21:20 -0600)]
utf8n_to_uvchr(): Reduce chances of reading beyond buffer
utf8n_to_uvchr() can be called incorrectly, leading it to believe the
buffer is longer than it actually is. But often, it will be called with
NUL terminated strings, so it can reduce it's chances of being fooled by
refusing to read beyond a NUL. The NUL will terminate any UTF-8 byte
sequence, and the only reason to read beyond it would be to print all
the expected bytes in the sequence.
This commit is not the final word, but it is an easy fix for a common
case.
Karl Williamson [Thu, 20 Oct 2016 00:43:39 +0000 (18:43 -0600)]
podcheck.t: .core dump files don't contain pod
even if they have pod lines in them.
Yves Orton [Wed, 19 Oct 2016 20:54:15 +0000 (22:54 +0200)]
make regen and args assert fix
Yves Orton [Wed, 19 Oct 2016 20:44:45 +0000 (22:44 +0200)]
Add a way to have functions with a trailing depth argument under debugging
In the regex engine it can be useful in debugging mode to
maintain a depth counter, but in normal mode this argument
would be unused. This allows us to define functions in embed.fnc
with a "W" flag which use _pDEPTH and _aDEPTH defines which
effectively define/pass through a U32 depth parameter to the
macro wrappers. These defines are similar to the existing
aTHX and pTHX parameters.
Yves Orton [Wed, 19 Oct 2016 19:33:00 +0000 (21:33 +0200)]
mark depth unused except under DEBUGGING
Karl Williamson [Mon, 17 Oct 2016 21:08:08 +0000 (15:08 -0600)]
PATCH: [perl #129322] S_invlist_clear(SV *): Assertion `invlist' failed
This was the result of an inconsistency in the inversion list union and
intersection routines, where under some conditions the function returned
a new inversion list, and under other conditions it just changed one of
the input ones. The caller knew about one of those and compensated, but
that compensation was erroneous given other conditions. This violated
encapsulation. The fix is make the called functions always consistent.
Karl Williamson [Sat, 15 Oct 2016 16:30:08 +0000 (10:30 -0600)]
regcomp.c: Fix erroneous comment; clarify others
Karl Williamson [Wed, 31 Aug 2016 23:52:19 +0000 (17:52 -0600)]
Add a regex_sets debugging function
This is enabled by a C flag, as commented. It is designed to be found
only by someone reading the code and wanting something temporary to help
in debugging.
Yves Orton [Wed, 19 Oct 2016 15:25:40 +0000 (17:25 +0200)]
PerlIO_printf() does not take aTHX_ as an argument
and if you use it, you can build fine on unthreaded perl, but
threaded will blow up. Sigh.
Yves Orton [Wed, 19 Oct 2016 15:15:44 +0000 (17:15 +0200)]
t/regop.t: improve test name
Lukas Mai [Wed, 19 Oct 2016 13:17:04 +0000 (15:17 +0200)]
regcomp.c: remove extra aTHX_ added in
c2867e745ca
Yves Orton [Wed, 19 Oct 2016 12:35:16 +0000 (14:35 +0200)]
pp_(hot|ctl).c: switch croak() to Perl_croak() for win32
Yves Orton [Tue, 18 Oct 2016 11:11:49 +0000 (13:11 +0200)]
regexec.c: fix #129903: forbid empty pattern in regex code block
PL_curpm provides access to the data needed to implement
the regex magic vars like $1 and $&. These vars are defined
to reference the last successfully matched pattern, or when
in regex code blocks (?{ ... }) and (??{ ... }), they
should refer to the currently executing pattern.
Unfortunately this collides with its use to implement the
empty pattern special behavior, which requires /just/
"the last successfully matched pattern" everwhere.
This meant that a pattern match like /(?{ s!!! })/ will
infinitely recurse. Fixing this would be difficult, on
the other hand detecting it is not, so we can convert
the infinite recursion/stack overflow into a normal
exception.
Yves Orton [Mon, 17 Oct 2016 21:13:44 +0000 (23:13 +0200)]
regexec.c: add comment and add a test
The test is from the existing comment.
Yves Orton [Mon, 17 Oct 2016 21:13:16 +0000 (23:13 +0200)]
regexec.c: fixup annoying unbalanced whitespace
Yves Orton [Mon, 17 Oct 2016 21:12:24 +0000 (23:12 +0200)]
regexec.c: in debug fixup indents and TRIE/BUFFER debug output
Yves Orton [Mon, 17 Oct 2016 21:10:10 +0000 (23:10 +0200)]
regexec.c: in debug show whether TRIE nodes have a jump table
Yves Orton [Mon, 17 Oct 2016 21:09:11 +0000 (23:09 +0200)]
regexec.c: fix perl #129897: trie short circuit breaks capture buffers
There is an optimisation when a trie matches only one thing
which causes it to fall through to the following code without
setting up a stack unwind frame. This breaks if we are using
a trie jump table where we might change state that will need
to be unwound on failure.
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
vxs.inc: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
vutil.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
utf8.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
universal.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
toke.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:27 +0000 (11:14 +0200)]
sv.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
regcomp.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
pp_sys.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
pp_pack.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
pp_hot.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
pp_ctl.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
pp.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
op.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
numeric.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
mro_core.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
mg.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
locale.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
hv.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:26 +0000 (11:14 +0200)]
dump.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:25 +0000 (11:14 +0200)]
doop.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:14:25 +0000 (11:14 +0200)]
doio.c: use new SvPVCLEAR and constant string friendly macros
Yves Orton [Wed, 19 Oct 2016 09:09:00 +0000 (11:09 +0200)]
gv.c: rework special var matching logic to be simpler
The old code used a bunch of tricks that IMO are unlikely
to actually make any performance difference, and make
the code harder to read, search, and understand, and less
amenable to using string constant friendly macros.
So for instance instead of switching on the first char
and then comparing the second on for an exact match
instead just compare the full string. The extra char
is unlikely to make a difference to the underlying code
that gets called, and the end result is easier searching.
Another issue is that some of the code was inadverdantly
doing prefix matches, and not exact matchs for certain
magic var names. This is fixed as part of these changes.
Yves Orton [Wed, 19 Oct 2016 09:08:10 +0000 (11:08 +0200)]
gv.c: rework string separator parsing to use new string macros
Yves Orton [Wed, 19 Oct 2016 09:07:40 +0000 (11:07 +0200)]
gv.c: switch to using string constant friendly macros
Yves Orton [Wed, 19 Oct 2016 09:06:26 +0000 (11:06 +0200)]
gv.c: add a require_tie_mod_s() wrapper for constant string args
Yves Orton [Wed, 19 Oct 2016 09:01:08 +0000 (11:01 +0200)]
perl.[ch]: switch to using SvPVCLEAR() and string constant friendly macros
Yves Orton [Wed, 19 Oct 2016 08:59:06 +0000 (10:59 +0200)]
vms: use hv_fetchs() with constant string key
Yves Orton [Wed, 19 Oct 2016 08:58:30 +0000 (10:58 +0200)]
pod: mention SvPVCLEAR()
Yves Orton [Wed, 19 Oct 2016 08:56:44 +0000 (10:56 +0200)]
amigaos4: use constant string friendly macros