This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
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
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.