This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
David Mitchell [Fri, 19 Dec 2014 16:09:19 +0000 (16:09 +0000)]
B.xs: remove redundant assignment
Follow-up to
500f40f555ee.
David Mitchell [Fri, 19 Dec 2014 11:40:33 +0000 (11:40 +0000)]
ExtUtils::Embed: silence test warning
From the added code comments:
XXX DAPM 12/2014: ExtUtils::Embed doesn't seem to provide API access
to $Config{optimize} and so compiles the test code without
optimisation on optimised perls. This causes the compiler to warn
when -D_FORTIFY_SOURCE is in force without -O. For now, just strip
the fortify on optimised builds to avoid the warning.
Father Chrysostomos [Fri, 19 Dec 2014 06:10:49 +0000 (22:10 -0800)]
Also allow /\N{}/
See
4cbd7e223 and ticket #123417.
If a charnames handler returns the empty string for a particular name,
then the regular expression stringifies with an empty \N{} in it.
This needs to round-trip properly (eval "/$qr/"), just like \N{U+...}.
Father Chrysostomos [Thu, 18 Dec 2014 23:52:14 +0000 (15:52 -0800)]
Father Chrysostomos [Thu, 18 Dec 2014 23:50:57 +0000 (15:50 -0800)]
Father Chrysostomos [Thu, 18 Dec 2014 22:55:34 +0000 (14:55 -0800)]
Father Chrysostomos [Thu, 18 Dec 2014 22:53:38 +0000 (14:53 -0800)]
perldelta for
9d52f6f3f87
Father Chrysostomos [Thu, 18 Dec 2014 22:48:48 +0000 (14:48 -0800)]
Karen Etheridge [Thu, 18 Dec 2014 19:17:56 +0000 (11:17 -0800)]
include reference to metacpan.org; refer to the module-authors list instead of modules, and include a link to the subscription page
Chris 'BinGOs' Williams [Thu, 18 Dec 2014 18:38:57 +0000 (18:38 +0000)]
Update Unicode-Collate to CPAN version 1.09
[DELTA]
1.09 Thu Dec 18 21:39:18 2014
- XS: a workaround for perl 5.6.x to handle noncharacters U+FFFF etc.
is abandoned. Perl 5.8.0 or later is recommended for handling these
noncharacters.
Tony Cook [Thu, 18 Dec 2014 04:42:11 +0000 (15:42 +1100)]
perldelta for
696efa16de2c
Tony Cook [Thu, 18 Dec 2014 03:48:34 +0000 (14:48 +1100)]
fix PerlIO::scalar get_cnt when the file position is beyond 2GB
This caused a new test to fail on 32-bit builds.
Father Chrysostomos [Thu, 18 Dec 2014 00:03:36 +0000 (16:03 -0800)]
regen pod issues
The F<>/L<> warning is bogus in this case.
Father Chrysostomos [Sun, 14 Dec 2014 14:55:30 +0000 (06:55 -0800)]
[perl #123417] Allow lexer to parse \N{U+dotted.hex}
This ‘unoffical’ notation is used in stringifying regular expressions
that contain named sequences, so that qr/\N{foo}/ stringified can be
incorporated into another regular expression in a different scope and
still mean the same thing.
This also needs to work with eval "/$that_qr/". I didn’t because the
lexer rejected this syntax.
Tony Cook [Wed, 17 Dec 2014 23:06:08 +0000 (10:06 +1100)]
Tony Cook [Wed, 17 Dec 2014 02:54:25 +0000 (13:54 +1100)]
don't allow a negative file position on a PerlIO::scalar handle
previosly seek() would produce an error, but would still make the\
file position negative.
Tony Cook [Wed, 17 Dec 2014 02:32:43 +0000 (13:32 +1100)]
[perl #123443] avoid overflowing got into a negative number
Chris 'BinGOs' Williams [Wed, 17 Dec 2014 21:01:29 +0000 (21:01 +0000)]
Update Filter::Util::Call to CPAN version 1.51
[DELTA]
1.50 2014-06-04 rurban
----
* Do not re-bless already blessed filter_add arguments into the callers package.
Fixes RT #54452
* t/z_pod-coverage.t: omit empty Filter::decrypt (also fixes RT #84405)
* Fix Perl Compiler detection in Filter::decrypt
1.51 2014-12-09 rurban
----
* Minor -Wall -Wextra cleanups by jhi and me. Fixes RT #100742
* Updated Copyright years
* Document and warn about its limitations
Father Chrysostomos [Wed, 17 Dec 2014 20:37:07 +0000 (12:37 -0800)]
Sort perldiag
Father Chrysostomos [Wed, 17 Dec 2014 20:32:30 +0000 (12:32 -0800)]
perldelta typos
Father Chrysostomos [Tue, 16 Dec 2014 22:25:22 +0000 (14:25 -0800)]
Fix bad read in pad.c:cv_undef
When freeing a sub, we can’t assume an entry named "&" contains a CV.
It may instead be a weak reference to a format or named sub, or undef
if such a reference went stale, in which case we don’t want to mess
with CvOUTSIDE pointers.
This bug probably goes back to v5.17.1-213-ge09ac07, when weak refer-
ences started being stored in "&" pad entries. It didn’t start trig-
gering AddressSanitizer failures until it was extended to named subs,
in v5.21.6-386-ga70f21d.
David Mitchell [Wed, 17 Dec 2014 17:29:42 +0000 (17:29 +0000)]
improve xs_handshake() diag message
The important part of the error message is that the binaries are
mismatched; the details of the handshake keys are an implementation
detail.
Or to put it another way, when someone mixes up their paths, getting
something like
Fcntl.c: Invalid handshake key got 0xcf80000 needed 0xd700000, binaries are mismatched
Is a bit scary and confusing. This is hopefully (slightly) less scary:
Fcntl.c: loadable library and perl binaries are mismatched (got handshake key 0xcf80000, needed 0xd700000)
David Mitchell [Wed, 17 Dec 2014 17:13:26 +0000 (17:13 +0000)]
xs_handshake(() clean up desciption
Clean up the description of this function; in particular, say at the top
what the function is for; fix typos; and generally improve the readability
of the text.
Aaron Crane [Wed, 17 Dec 2014 16:07:42 +0000 (16:07 +0000)]
Template::Declare's tests now pass under 5.22-to-be
David Mitchell [Wed, 17 Dec 2014 15:54:18 +0000 (15:54 +0000)]
Remove duplicate apidoc entries
Modify apidoc.pl to warn about duplicate apidoc entries, and
remove duplicates for av_tindex and toLOWER_LC
David Mitchell [Wed, 17 Dec 2014 15:37:19 +0000 (15:37 +0000)]
update perldelta for UNOP_AUX and OP_MULTIDEREF
David Mitchell [Wed, 17 Dec 2014 15:17:35 +0000 (15:17 +0000)]
INSTALL: warning text has changed
Some text tells you about
Note (probably harmless): No library found for -lsomething
warnings, but the actual warning has now changed to
Warning (mostly harmless): No library found for -lsomething
Father Chrysostomos [Wed, 17 Dec 2014 04:35:43 +0000 (20:35 -0800)]
Deparse constant Perl subs
Subs like sub f () { 42 } stopped being emitted, probably in
v5.21.3-638-g2eaf799, when such subs started being stored as simple
scalar refs in the stash.
Craig A. Berry [Wed, 17 Dec 2014 03:09:40 +0000 (21:09 -0600)]
VMS does have fsync, so configure accordingly.
And has had since roughly the beginning of time, and has even been
using it since right around then in vms/vms.c. But it doesn't work
on read-only filehandles, so skip the test that expects that.
Craig A. Berry [Wed, 17 Dec 2014 01:14:11 +0000 (19:14 -0600)]
Clean up VMS includes in ext/Errno/Errno_pm.PL.
There are currently (and for many years now) no viable alternatives
to the headers that come with the operating system, regardless of
compiler.
Craig A. Berry [Wed, 17 Dec 2014 01:11:22 +0000 (19:11 -0600)]
Obsolete workaround in ext/SDBM_File/sdbm/Makefile.PL.
Hasn't been necessary or relevant for some years.
Father Chrysostomos [Tue, 16 Dec 2014 20:42:20 +0000 (12:42 -0800)]
Add Template::Declare to perl5220delta
for #123364.
David Mitchell [Tue, 16 Dec 2014 16:57:25 +0000 (16:57 +0000)]
Storable.xs: introduce SEEN*_NN
Introduce _NN versions of the SEEN() and SEEN0() macros, that
don't bother to check whether their first arg is null.
The initial motivation for this was to to silence a compiler warning
about a conditional always being true in SEEN(&PL_sv_undef,...), but
I've also applied it to all places in the code where it's clear that the
arg can't be null, e.g.
sv = NEWSV();
SEEN(sv,...);
At it happens, "places where" currently equates to every usage of
SEEN/SEEN0 in the source code.
David Mitchell [Tue, 16 Dec 2014 15:22:07 +0000 (15:22 +0000)]
perldiag.pod: fix typo
David Mitchell [Tue, 16 Dec 2014 12:20:25 +0000 (12:20 +0000)]
toupper/lower: avoid sign warnings
Perl's toLOWER_LC() etc macros are specified as having U8 arg and return,
while the underlying macro may call the OS's tolower() function which is
int. Stop the compiler warning about mismatched sign in conditional by
casting the result of the OS function.
kmx [Tue, 16 Dec 2014 09:00:16 +0000 (09:00 +0000)]
[perl #123436] installperl patch related to $Config{dlext}
kmx [Tue, 16 Dec 2014 08:52:07 +0000 (08:52 +0000)]
[perl #123438] Wrong comment style in win32/win32.h
Father Chrysostomos [Tue, 16 Dec 2014 06:23:23 +0000 (22:23 -0800)]
[perl #123020] Scalar cx for lhs of void (...)x...
No sane code calls x in void context (except at the end of a subrou-
tine), but we have to handle it anyway.
Previously, the left-hand parenthesized operand to (...)x... would be
evaluated in the context in which the current sub was called. I.e.,
if the last statement in the current sub is called in last context,
then then lhs of (...)x... a hundred lines earlier (say we have a
big sub) is called in list context, even though it is completely
unrelated.
Since the left-hand operand could be called in any of the three con-
texts when x itself was in void context, I could choose whatever I
wanted when making it consistent. Scalar context makes the most sense
to me, because x falls back to string repeat when not in list context,
and because void context makes stack handling complex.
Unfortunately, this does not fix the context if x occurs at the end of
a subroutine. That will be a lot trickier to fix. (Hence, the com-
plex stack handling in pp_repeat must remain.)
Father Chrysostomos [Tue, 16 Dec 2014 06:05:18 +0000 (22:05 -0800)]
Don’t ignore rv2gv when deparsing readline
Unlike most handle ops, readline does not implicitly add an rv2gv op.
In fact, there is a difference in behaviour, depending on whether
there is an rv2gv op present. An explicit * (rv2gv) will force vivi-
fication of the typeglob, but ‘readline’ alone won’t vivify it.
So B::Deparse should not ignore the rv2gv kid of readline.
Previously, readline(*$foo) (vivifying) would deparse as <$foo> (non-
ivifying), and readline *{$foo} would deparse as readline do { $foo }
(same behavioural difference again).
Father Chrysostomos [Tue, 16 Dec 2014 04:37:11 +0000 (20:37 -0800)]
Deparse: Restore proto checks for coderef2text
This fixes #123435 (I hope).
Before v5.21.6-485-gf2279a6, B::Deparse, when deparsing sub calls,
would look in the stash for a sub with a prototype, and use that
prototype for deparsing. (It would only do this for subs that it
itself is not going to deparse.) That caused this to deparse
incorrectly:
BEGIN {
require Test::More;
is("foo", "foo");
}
Because of the presence of the prototyped &main::is by the time
B::Deparse is invoked, it would deparse the is() sub call without
parentheses, resulting in invalid code.
So I changed it to trust only those subs that it has already deparsed.
Now, with coderef2text, B::Deparse doesn’t deparse any subs except the
one passed to it. So *all* prototype sub calls turn into &foo, break-
ing CPAN tests that expect otherwise. While such tests could be con-
sidered too sensitive, I don’t think that this is necessarily a sane
default for coderef2text.
Ideally we should provide the option to tell coderef2text which
subs to trust, the default being to trust all of them. But for
now I will just implement that default, which means reverting
v5.21.6-485-gf2279a6 *for coderef2text*, but not when deparsing the
main program.
Father Chrysostomos [Tue, 16 Dec 2014 04:31:16 +0000 (20:31 -0800)]
Deparse.pm: Remove obsolete comment about globals
Knowing that object fields were globals is no longer useful, unless
one is intimately familiar with a very old version of B::Deparse and
wants to find his way around the new one. (Good luck!)
Furthermore, several of these ‘former globals’ were never globals,
because they came after this comment.
Craig A. Berry [Tue, 16 Dec 2014 03:20:13 +0000 (21:20 -0600)]
Skip obsolete skip in io_xs.t.
The VAXC compiler and its compatibility library VAXCRTL are long
since obsolete.
Tony Cook [Tue, 16 Dec 2014 00:37:58 +0000 (11:37 +1100)]
perldelta for
3f6e436ff088
also move the B::Deparse fix under B::Deparse
Daniel Dragan [Fri, 12 Dec 2014 10:16:50 +0000 (05:16 -0500)]
document + improve ancient optimization in ParseXS
From commit
8990e30710 "perl 5.0 alpha 6". The DESTROY XSUB with T_PTROBJ
as INPUT arg was refusing to obey my custom typemap for T_PTROBJ, but all
other XSUBs followed the custom T_PTROBJ override. Extend this
optimization to other rarely used typemap types and document this behavior.
Father Chrysostomos [Mon, 15 Dec 2014 17:23:11 +0000 (09:23 -0800)]
Deparse: Stop =~ QR_CONST from dropping flags
Father Chrysostomos [Mon, 15 Dec 2014 17:43:41 +0000 (09:43 -0800)]
Add B::REGEXP::compflags
Father Chrysostomos [Mon, 15 Dec 2014 13:53:39 +0000 (05:53 -0800)]
Deparse.pm: Two more matchwords
This is *highly* important. :-)
Father Chrysostomos [Mon, 15 Dec 2014 02:27:39 +0000 (18:27 -0800)]
deparse-skips.txt: op/getpid.t fails
Father Chrysostomos [Mon, 15 Dec 2014 02:25:30 +0000 (18:25 -0800)]
deparse-skips.txt: More passing tests
Father Chrysostomos [Mon, 15 Dec 2014 02:24:08 +0000 (18:24 -0800)]
Deparse system-BLOCK correctly
Same with exec. Don’t put ‘do’ before the block.
This was accomplished by running it through the same code path
(indirop) that print and sort already go through.
There was a slight discrepancy between listop and indirop in the way
they handled no arguments. Before we would get:
() = system;
() = exec;
() = sort();
Instead of making the first two get the redundant parentheses, I
changed indirop, so sort lost them.
Father Chrysostomos [Mon, 15 Dec 2014 02:15:23 +0000 (18:15 -0800)]
deparse-skips.txt: eval tests pass
Father Chrysostomos [Mon, 15 Dec 2014 02:14:50 +0000 (18:14 -0800)]
deparse-skips.txt: Skip reason for op/each.t
Father Chrysostomos [Mon, 15 Dec 2014 17:41:54 +0000 (09:41 -0800)]
pp_readline: Don’t set PL_last_in_gv to &PL_sv_undef
Code elsewhere assumes it is always a GV or NULL:
readline "foo";
my $lastfh = "${^LAST_FH}";
Father Chrysostomos [Mon, 15 Dec 2014 03:40:07 +0000 (19:40 -0800)]
add cpan/Test-Simple/t/Behavior/subtest_die.t to MANIFEST
Aristotle Pagaltzis [Mon, 15 Dec 2014 02:43:51 +0000 (03:43 +0100)]
perl.pod: Use consistent perldelta order
Father Chrysostomos [Mon, 15 Dec 2014 02:10:20 +0000 (18:10 -0800)]
perl.pod: Line things up vertically
Father Chrysostomos [Mon, 15 Dec 2014 01:02:02 +0000 (17:02 -0800)]
Import perl5184delta
Chad Granum [Mon, 15 Dec 2014 02:09:12 +0000 (03:09 +0100)]
Test-Simple Version Bump, 1.301001_090 (RC10)
Father Chrysostomos [Mon, 15 Dec 2014 01:14:23 +0000 (17:14 -0800)]
Don’t set PadlistMAXNAMED for single-char entries
This fixes perl #123430.
Single-character entries like "$" and "&" are not actually named
entries, but are partially treated as such for the sake of bookkeeping
and scope. (E.g., a flipflop target must have the same lifetime as a
state variable.)
PadlistMAXNAMED is an optimisation that marks the offset of the high-
est pad slot with a name. If there any many anonymous pad slots after
the last named one, we don’t want to search through them when looking
up a symbol. So we mark the maximum named slot and skip half the pad
if we are lucky.
Commit v5.21.4-51-g14d9114 caused flipflop targets to be allocated as
variables named "$", causing compilation of some generated code to
slow down. At compile time, the name pad is not extended to the
length of the pad until the end of subroutine compilation. So prior
to 14d9114 flipflop targets would not make the name pad any longer.
Now that flipflop targets expand the name pad, stop setting
PadlistMAXNAMED, so that things are no slower than before.
This is not really the best fix, IMO, because code that is sensitive
to this will slow down dramatically if you tweak it ever so slightly
by adding a ‘my $x’ here or there.
Father Chrysostomos [Sun, 14 Dec 2014 23:59:31 +0000 (15:59 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 23:53:44 +0000 (15:53 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 23:53:09 +0000 (15:53 -0800)]
perldelta for
0175f038c506e
Father Chrysostomos [Sun, 14 Dec 2014 23:52:41 +0000 (15:52 -0800)]
perldelta for 127ce1c
Father Chrysostomos [Sun, 14 Dec 2014 23:51:15 +0000 (15:51 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 22:40:36 +0000 (14:40 -0800)]
perldelta for
3f193e551 and
8c2e27d21
Father Chrysostomos [Sun, 14 Dec 2014 22:38:40 +0000 (14:38 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 22:37:51 +0000 (14:37 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 22:36:56 +0000 (14:36 -0800)]
perldelta for
487e470d / #123410
Father Chrysostomos [Sun, 14 Dec 2014 22:33:36 +0000 (14:33 -0800)]
perldelta for
c310a5abff1
Father Chrysostomos [Sun, 14 Dec 2014 22:30:05 +0000 (14:30 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 22:28:11 +0000 (14:28 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 22:26:40 +0000 (14:26 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 22:16:47 +0000 (14:16 -0800)]
perldelta for
df46573596 and
917a8f4f
Father Chrysostomos [Sun, 14 Dec 2014 22:14:27 +0000 (14:14 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 22:12:52 +0000 (14:12 -0800)]
perldelta for
2a43599bfdf
Father Chrysostomos [Sun, 14 Dec 2014 22:08:57 +0000 (14:08 -0800)]
perldelta for
de001ba03 and
67359f08a
Father Chrysostomos [Sun, 14 Dec 2014 22:05:16 +0000 (14:05 -0800)]
perldelta for
ddb555489 / #123357
Father Chrysostomos [Sun, 14 Dec 2014 22:03:23 +0000 (14:03 -0800)]
perldelta for
cbce292e0b / #114498
Father Chrysostomos [Sun, 14 Dec 2014 22:01:22 +0000 (14:01 -0800)]
perldelta for
b813f4458 / #123217 / #115256
Father Chrysostomos [Sun, 14 Dec 2014 21:58:13 +0000 (13:58 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 21:57:11 +0000 (13:57 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 21:55:45 +0000 (13:55 -0800)]
perldelta: Add #40565 bug number
Father Chrysostomos [Sun, 14 Dec 2014 21:52:53 +0000 (13:52 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 21:48:10 +0000 (13:48 -0800)]
perldelta for B pad name changes
Father Chrysostomos [Sun, 14 Dec 2014 21:46:56 +0000 (13:46 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 21:45:48 +0000 (13:45 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 21:45:09 +0000 (13:45 -0800)]
perldelta for
0f94cb1f / #123223
Father Chrysostomos [Sun, 14 Dec 2014 21:40:58 +0000 (13:40 -0800)]
perldelta for
3bc8ec963 / #123344
Father Chrysostomos [Sun, 14 Dec 2014 21:39:26 +0000 (13:39 -0800)]
perldelta for
6190dd991505e
Father Chrysostomos [Sun, 14 Dec 2014 21:37:52 +0000 (13:37 -0800)]
perldelta for
d4f1bfe74 / #116553
Father Chrysostomos [Sun, 14 Dec 2014 21:36:13 +0000 (13:36 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 21:16:50 +0000 (13:16 -0800)]
perldelta for
0f602692 / #123286
Father Chrysostomos [Sun, 14 Dec 2014 20:57:15 +0000 (12:57 -0800)]
perldelta for
29179484f / #77860
Father Chrysostomos [Sun, 14 Dec 2014 20:55:28 +0000 (12:55 -0800)]
perldelta for
0c46edc2e / #47363
Father Chrysostomos [Sun, 14 Dec 2014 20:53:46 +0000 (12:53 -0800)]
perldelta: encoding.pm change is incompatible
so list it under Incompatible Changes.
Father Chrysostomos [Sun, 14 Dec 2014 20:50:35 +0000 (12:50 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 20:44:50 +0000 (12:44 -0800)]
perldelta for
e41e9865be / #4539 / #123062
Father Chrysostomos [Sun, 14 Dec 2014 20:36:37 +0000 (12:36 -0800)]
Father Chrysostomos [Sun, 14 Dec 2014 19:16:45 +0000 (11:16 -0800)]
B.pm: Document that OP_NULL may be B::COP
Father Chrysostomos [Sun, 14 Dec 2014 19:15:23 +0000 (11:15 -0800)]
B.pm: Capitalise B::* Methods consistently