This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
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
Father Chrysostomos [Sun, 14 Dec 2014 19:10:11 +0000 (11:10 -0800)]
perldelta for
34b54951 / #77452
Father Chrysostomos [Sun, 14 Dec 2014 01:28:25 +0000 (17:28 -0800)]
Use tabs in AUTHORS
Tony Cook [Sun, 14 Dec 2014 22:45:23 +0000 (09:45 +1100)]
Useqq no longer forces use of the pure-perl Data::Dumper
Chris 'BinGOs' Williams [Sun, 14 Dec 2014 20:19:54 +0000 (20:19 +0000)]
Update Archive-Tar to CPAN version 2.04
[DELTA]
2.04 14/12/2014
- RT#100903 enable ptargrep.t to work on VMS
Chad Granum [Sun, 14 Dec 2014 16:53:53 +0000 (08:53 -0800)]
Test-Simple Version Bump, 1.301001_089 (RC9)
Karl Williamson [Sun, 14 Dec 2014 05:51:51 +0000 (22:51 -0700)]
PATCH: [perl #23171] Bleadperl breaks ZEFRAM/Hash-SharedMem
This just makes sure POSIX::strerror() pays attention to the current
locale.
Aaron Crane [Sun, 7 Dec 2014 15:41:33 +0000 (15:41 +0000)]
makedef.pl: don't hard-code list of mathoms
It's easy enough to read the list out of mathoms.c directly, and this should
prevent almost all bugs of the sort that were fixed by
083750a56b7927292a4bf7b1bf64aa26dd2a6858. (Only names that don't begin with
"Perl_" will cause a problem.)
The list of names detected automatically may actually differ slightly from
the hard-coded list; for example, the definition of Perl_huge() is inside
"#if defined(HUGE_VAL) || (defined(USE_LONG_DOUBLE) && defined(HUGE_VALL))",
but the new code in makedef.pl ignores preprocessor conditions. However, the
list is used as names to *skip*, rather than to include, so it's not a
problem if makedef.pl is willing to skip names that it will never be asked
to include.
Father Chrysostomos [Sun, 14 Dec 2014 06:28:24 +0000 (22:28 -0800)]
deparse-skips.txt: do.t now passes
Father Chrysostomos [Sun, 14 Dec 2014 06:27:31 +0000 (22:27 -0800)]
deparse-skips.txt: crypt.t now passes
Father Chrysostomos [Sun, 14 Dec 2014 06:25:52 +0000 (22:25 -0800)]
deparse-skips.txt: coreamp.t now passes
Father Chrysostomos [Sun, 14 Dec 2014 06:14:34 +0000 (22:14 -0800)]
Deparse: Don’t parenthesize \my @a needlessly
because \my(@a) is different, and produces a list of element refs,
rather than a single reference to the array.
No good:
$ ./perl -Ilib -MO=Deparse -e '\my @x'
\my(@x);
-e syntax OK
Chad Granum [Sun, 14 Dec 2014 06:44:32 +0000 (22:44 -0800)]
Test-Simple Version Bump, 1.301001_088 (RC8)
Father Chrysostomos [Sun, 14 Dec 2014 05:44:06 +0000 (21:44 -0800)]
deparse-skips.txt: More passing tests
Father Chrysostomos [Sun, 14 Dec 2014 05:43:04 +0000 (21:43 -0800)]
deparse-skips.t: chdir.t passes
Father Chrysostomos [Sun, 14 Dec 2014 05:40:05 +0000 (21:40 -0800)]
Fix deparsing of chdir without args
I just broke that in
0175f038c5. I did not realise that OPf_SPECIAL
means two different things on chdir. (See the previous commit.)
Father Chrysostomos [Sun, 14 Dec 2014 05:39:02 +0000 (21:39 -0800)]
op.h: Note chdir’s use of OPf_SPECIAL
Father Chrysostomos [Sun, 14 Dec 2014 05:35:12 +0000 (21:35 -0800)]
op.c: Correct comment about OPf_SPECIAL & parens
Craig A. Berry [Sun, 14 Dec 2014 04:09:49 +0000 (22:09 -0600)]
Fix ptargrep match.
The 08_ptargrep.t test does a pattern match that appears to assume platform-specific semantics for the pattern that matches a filename. It certainly doesn't match the filename on VMS:
not ok 1 - ptargrep shows matched file
But we know the actual filename, so the simplest solution is to just do an equality test on that, and that's what the attached patch does.
Submitted upstream at <https://rt.cpan.org/Public/Bug/Display.html?id=100903>.
Father Chrysostomos [Sun, 14 Dec 2014 03:11:08 +0000 (19:11 -0800)]
Deparse chdir(bareword) without quotes
Father Chrysostomos [Sun, 14 Dec 2014 01:39:58 +0000 (17:39 -0800)]
deparse-skips.t: bop.t passes
Father Chrysostomos [Sun, 14 Dec 2014 01:39:21 +0000 (17:39 -0800)]
deparse-skips.t: Note bug number for attrs.t
‘my’ list assignment with attributes. Another tricky one.
Father Chrysostomos [Sun, 14 Dec 2014 01:35:21 +0000 (17:35 -0800)]
deparse-skips.t: Reason for attrhand.t skip
This is a hard one which I don’t feel like fixing just now.
Father Chrysostomos [Sun, 14 Dec 2014 01:23:55 +0000 (17:23 -0800)]
deparse-skips.txt: array_base.t now passes
Father Chrysostomos [Sun, 14 Dec 2014 01:18:11 +0000 (17:18 -0800)]
Deparse use-ver features correctly
This does not do the same thing as ‘use v5.16’:
no feature;
use feature ":5.16";
because ‘no feature’ restores the default bundle, and does not disa-
ble array_base, whereas ‘use v5.16’ does. What you need is ‘no fea-
ture ":all"’.
Father Chrysostomos [Sun, 14 Dec 2014 01:22:57 +0000 (17:22 -0800)]
Deparse.t: Adjust a test broken 2 commits ago
Father Chrysostomos [Sun, 14 Dec 2014 01:03:16 +0000 (17:03 -0800)]
Test for deparsing proto sub calls with &
See the previous commit’s explanation.
Father Chrysostomos [Sun, 14 Dec 2014 01:02:23 +0000 (17:02 -0800)]
Revert ‘alternate way to figure out prototypes’
This reverts commit
1d38190f803f2a83884e9591276436394df55dd4.
$ ./perl -Ilib -MO=-q,Deparse -e 'BEGIN { require "t/test.pl"; is("foo","foo") }'
sub BEGIN {
require 't/test.pl';
is 'foo', 'foo';
}
-e syntax OK
The resulting code doesn’t even compile, because it lacks parentheses
around the arguments to ‘is’, and the function does not exist yet when
that statement is compiled.
The logic that makes ‘is’ lose its parentheses was added by
this commit:
commit
1d38190f803f2a83884e9591276436394df55dd4
Author: Rafael Garcia-Suarez <rgarciasuarez@gmail.com>
Date: Tue Jan 1 23:45:21 2002 +0100
alternate way to figure out prototypes
Message-ID: <
20020101224521.A691@rafael>
p4raw-id: //depot/perl@14007
Previously, B::Deparse would put & on any prototyped sub call if it
were not deparsing the sub itself, because it is not possible to tell
exactly when the sub will be defined when the program loads. (That is
still true.)
That meant is(@foo, @bar) would be deparsed as &is(@foo, @bar), which
is wrong, because the arrays are not evaluated in scalar context.
(test.pl and Test::More both have prototypes beginning with $$ for
‘is’.)
1d38190f8 was meant to fix that, and did so by respecting the
prototype if the sub exists and B::Deparse is not going to emit it
(e.g., because it’s in another file than the main program).
As of v5.21.6-321-gc65b7c4, & calls include ‘scalar’ where necessary,
so the fix from
1d38190f8 is no longer necessary.
Craig A. Berry [Sat, 13 Dec 2014 23:42:15 +0000 (17:42 -0600)]
Version bump for ExtUtils::CBuilder.
Craig A. Berry [Sat, 13 Dec 2014 21:56:18 +0000 (15:56 -0600)]
Remove VAXC special cases from ExtUtils::CBuilder.
VAX C was a pre-ANSI compiler that was superceded about fifteen
years ago, so there is no reason to include special cases for it
now.
Father Chrysostomos [Sat, 13 Dec 2014 21:32:09 +0000 (13:32 -0800)]
Allow OPf_SPECIAL on OP_GV
The multideref assertions should allow the OPf_SPECIAL flag, because
an OP_GV that started out as OP_CONST and got converted in ck_rvconst
may have have OPf_SPECIAL set already. This flag is harmless on
OP_GV, so don’t bother turning it off.
Father Chrysostomos [Sat, 13 Dec 2014 20:39:54 +0000 (12:39 -0800)]
Don’t call FETCH multiple times on int $inf
Father Chrysostomos [Sat, 13 Dec 2014 20:35:08 +0000 (12:35 -0800)]
Fix garbage output from ‘my $é’
$ echo 'my $é' | iconv -f utf-8 -t iso-8859-1 | ./perl -Ilib -CS
Can't use global $^ÿ
\80\8f¿¿¿¿¿¿¿¿¾© in "my" at - line 1, at end of line
In trying to turn the é into a ^X sequence, alloc_my does toCTRL()
(^64) on it, where the character is treated as a signed inte-
ger, i.e., -23 ^ 64, or -87. In sv_vcatpvfn_flags, it gets
cast to a UV, so it becomes
18446744073709551529 on 64-bit
platforms. Encoded in ‘extended’ UTF8, that becomes
<FF><80><8F><BF><BF><BF><BF><BF><BF><BF><BF><BE><A9> (assuming I cop-
ied and pasted it from less correctly), which only perl recognizes as
chr
18446744073709551529.
We should not be trying to do $^X on non-ASCII characters.
Father Chrysostomos [Sat, 13 Dec 2014 17:44:47 +0000 (09:44 -0800)]
Remove obsolete comment from lib/sort.t
It was added by perl-5.6.0-8936-g7821065. The corresponding comment
in pp_sort.c that it refers to, also added by the same commit, was
removed in perl-5.8.0-5345-g5fe61d9.
Father Chrysostomos [Sat, 13 Dec 2014 14:02:50 +0000 (06:02 -0800)]
dump.c: Make static functions static
Father Chrysostomos [Fri, 12 Dec 2014 16:20:18 +0000 (08:20 -0800)]
Use STATIC_ASSERT in B::PADNAME::FLAGS
Father Chrysostomos [Sat, 13 Dec 2014 14:34:48 +0000 (06:34 -0800)]
Deparse require vstring without parens
require(v5.16) does not work. I broke this by adding the parens in
917a8f4f52.
David Mitchell [Sat, 13 Dec 2014 15:15:21 +0000 (15:15 +0000)]
rename S_print_gv_name() to S_append_gv_name()
and remove its sigil arg.
During development of OP_MULTIDEREF this function evolved; the new
name reflects its usage more accurately, and sigil is always '$'.
Father Chrysostomos [Sat, 13 Dec 2014 06:42:51 +0000 (22:42 -0800)]
deparse-skips.t: array.t now passes
Father Chrysostomos [Sat, 13 Dec 2014 06:42:11 +0000 (22:42 -0800)]
Deparse $#{1} with braces
$#1 is a syntax error.
Father Chrysostomos [Sat, 13 Dec 2014 06:23:22 +0000 (22:23 -0800)]
deparse-skips.t: opbasic tests are passing
Father Chrysostomos [Sat, 13 Dec 2014 06:21:58 +0000 (22:21 -0800)]
deparse-skips.t: Note reason for re/rxcode.t