H.Merijn Brand [Mon, 16 Sep 2013 12:47:08 +0000 (14:47 +0200)]
Regenerate Configure and chainsaw voidflags
Nicholas Clark [Mon, 16 Sep 2013 10:00:42 +0000 (12:00 +0200)]
Merge changes which eliminate VOIDFLAGS and VOIDUSED from active code.
The remaining uses are in Configure and its related generated files, along
with canned config.sh files and configure.com. The next regeneration of
Configure from metaconfg should eliminate nearly all of these, at which point
the remainder can be removed by hand.
Brian Fraser [Wed, 11 Sep 2013 10:22:45 +0000 (12:22 +0200)]
Eliminate the use of voidflags from Configure's pointer size determination.
This should permit metaconfig to drop the entire voidflags logic from
Configure and the config.sh related files.
Nicholas Clark [Wed, 11 Sep 2013 09:54:42 +0000 (11:54 +0200)]
Eliminate the only use of VOIDFLAGS, as part of STMT_START in perl.h
STMT_START has used VOIDFLAGS as part of its conditional compilation since it
was added by commit
728e280303ae3d3b (March 1996). The code originally read:
/* Now which other defined()s do we need here ??? */
Since then it has been amended to avoid entering that definition for GCC
on Solaris. Given that all current Solaris compilers are C89 conformant,
VOIDFLAGS will always be true (actually 15), so the test is redundant.
Even back in 1996, it's possible that VOIDFLAGS was always non-zero on
SunOS, rendering the test obsolete from the start.
Spotted by Brian Fraser, and extracted from a larger patch of his.
Nicholas Clark [Wed, 11 Sep 2013 07:14:36 +0000 (09:14 +0200)]
Stop using VOIDUSED in the headers.
VOIDUSED was provided by metaconfig to work around pre-ANSI compilers that
didn't support all uses of the void type. We've been mandating a proper ANSI
C89 compiler for at least a decade, so we don't need this any more.
Nicholas Clark [Mon, 16 Sep 2013 09:47:17 +0000 (11:47 +0200)]
Remove the hints for Kubota Pacific's Titan 3000 Series Machines.
These appear to be a hold-over from Perl 4 days. We think it unlikely that
perl 5.000 ever compiled correctly on these machines, and changes in 5.004
would definitely have made Perl unbuildable. Given that we've had no bug
reports in 16 years, it's clear that this platform is completely unused,
and thus safe to remove it without any warning period.
See RT #119745 for more details.
Tony Cook [Mon, 16 Sep 2013 05:41:17 +0000 (15:41 +1000)]
Tony Cook [Mon, 16 Sep 2013 05:32:59 +0000 (15:32 +1000)]
[perl #77680] document list of special subs in perlsub
This also adds documentation for the undocumented DB::goto and
DB::lsub.
Tony Cook [Tue, 10 Sep 2013 07:04:00 +0000 (17:04 +1000)]
[perl #77680] add pointers to a few other perl called subs
Tony Cook [Mon, 16 Sep 2013 05:02:16 +0000 (15:02 +1000)]
briefly document DB::lsub
Tony Cook [Tue, 10 Sep 2013 06:39:13 +0000 (16:39 +1000)]
test and briefly document DB::goto
Zsbán Ambrus [Tue, 10 Sep 2013 05:02:56 +0000 (15:02 +1000)]
[perl #77680] perlsub pointers to sub names used by perl itself
Tony Cook: convert from a diff to a commit
Tony Cook [Mon, 16 Sep 2013 04:38:05 +0000 (14:38 +1000)]
Tony Cook [Wed, 11 Sep 2013 06:30:43 +0000 (16:30 +1000)]
[perl #79074] make sure HeSVKEY_force() preserves UTF8ness (pvn)
HeSVKEY_force() is only used in two places in core.
In the first case, the key is always stored as a SV (when handling tie
magic, since NEXTKEY can only return a SV)
The second case is in B::HE, but I don't see a way to create a B::HE object
from a hash.
Tony Cook [Mon, 16 Sep 2013 04:13:53 +0000 (14:13 +1000)]
clarify that the new rand() isn't cryptographically secure
so people won't read too much into the change
Steve Hay [Sun, 15 Sep 2013 23:43:08 +0000 (00:43 +0100)]
Note new blead customizations to JSON::PP and Test::Simple
Steve Hay [Sun, 15 Sep 2013 23:33:32 +0000 (00:33 +0100)]
perldelta - Fix syntax errors
Steve Hay [Sun, 15 Sep 2013 23:08:56 +0000 (00:08 +0100)]
Remove the 'first-come' status from Porting/Maintainers.pl
This has outlived its usefulness and we have agreement on p5p and irc to
drop it. Many thanks to the CPAN authors of those modules formerly listed
as 'first-come' for being sufficiently responsive to patches sent upstream!
Steve Hay [Sun, 15 Sep 2013 22:39:41 +0000 (23:39 +0100)]
perldelta - Update new/changed diagnostics section
Also tweak some formatting in perldiag.pod itself.
Steve Hay [Sun, 15 Sep 2013 22:26:44 +0000 (23:26 +0100)]
perldelta - Update new/changed documentation section
Steve Hay [Sun, 15 Sep 2013 22:03:52 +0000 (23:03 +0100)]
perldelta - Fill in a TODO item for a module, which I forgot earlier
Steve Hay [Sun, 15 Sep 2013 21:55:47 +0000 (22:55 +0100)]
perldelta - New test scripts
Father Chrysostomos [Sun, 15 Sep 2013 22:37:06 +0000 (15:37 -0700)]
perldata.pod: Mention what version introduced kv slices
Father Chrysostomos [Sun, 15 Sep 2013 20:52:27 +0000 (13:52 -0700)]
op.h: Describe entersub and rv2cv flags
Entersub ops can turn into rv2cv ops at compile time. It is important
that possible flag conflicts are handled properly. Since it took me
a while to figure out that there were no bugs here, here are my own
notes, cleaned up and nicely formatted.
Father Chrysostomos [Sun, 15 Sep 2013 20:38:18 +0000 (13:38 -0700)]
Use dev version for JSON::PP
Father Chrysostomos [Sun, 15 Sep 2013 20:37:56 +0000 (13:37 -0700)]
Fix precedence issue in JSON::PP
Father Chrysostomos [Sun, 15 Sep 2013 20:10:33 +0000 (13:10 -0700)]
Use dev version for Test::Builder et al.
It has changes in blead that are not on CPAN yet. The number
0.98_05 is already used on CPAN.
Niels Thykier [Mon, 15 Jul 2013 20:25:19 +0000 (22:25 +0200)]
op.c: Warn on "return $a or $b" [perl #59802]
Add a warning for the (likely) unintended use of "return $a or $b"
(and similar expressions), which perl parses as "(return $a) || $b"
(which is effectively just "return $a;").
Note this warning is triggered by some modules (e.g. Test::Builder).
These are not fixed by this commit.
Signed-off-by: Niels Thykier <niels@thykier.net>
Niels Thykier [Mon, 15 Jul 2013 20:40:48 +0000 (22:40 +0200)]
Test::Builder: Fix "return $a or $b" precedence issue
perl parses "return $a or $b" effectively as "return $a;", which is
not what was intended.
Signed-off-by: Niels Thykier <niels@thykier.net>
Chris 'BinGOs' Williams [Sun, 15 Sep 2013 20:56:22 +0000 (21:56 +0100)]
Chris 'BinGOs' Williams [Sun, 15 Sep 2013 20:00:55 +0000 (21:00 +0100)]
Remove -lbsd from optional libs on GNU/Hurd too
Father Chrysostomos [Sun, 15 Sep 2013 18:31:39 +0000 (11:31 -0700)]
sv.h: Make BmUSEFUL the same type on debug/non-debug builds
408dc2ec1c7 made in an IV (signed) on debugging builds but a UV
(unsigned) on regular builds.
Steve Hay [Sun, 15 Sep 2013 18:04:04 +0000 (19:04 +0100)]
perldelta - Module upgrades
Steve Hay [Sun, 15 Sep 2013 17:44:56 +0000 (18:44 +0100)]
perldelta - A little copy-editing
Steve Hay [Sun, 15 Sep 2013 16:27:30 +0000 (17:27 +0100)]
perldelta - Restore
525553cafc, accidentally undone by
e7f2d65136
David Mitchell [Sun, 15 Sep 2013 11:02:05 +0000 (12:02 +0100)]
ExtUtils::ParseXS: bump version of related modules
9b2d7314c3d60 bumped $VERSION in ParseXS.pm from 3.22 to 3.23,
but left the other .pm files at .22. This stops ExtUtils::ParseXS from
loading, so bump all the other modules in this distribution too.
Father Chrysostomos [Sun, 15 Sep 2013 06:25:04 +0000 (23:25 -0700)]
perldelta for
429a25554/#28380,#114024
Father Chrysostomos [Sun, 15 Sep 2013 06:22:10 +0000 (23:22 -0700)]
perldelta for
b846c0c86e5
Father Chrysostomos [Sun, 15 Sep 2013 06:20:51 +0000 (23:20 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 06:19:11 +0000 (23:19 -0700)]
Increase $ExtUtils::ParseXS::VERSION to 3.23
There has been another change (
e15ca23a9) since the last CPAN
release. Would that cmp_version.t could catch this!
Father Chrysostomos [Sun, 15 Sep 2013 06:15:37 +0000 (23:15 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 06:14:51 +0000 (23:14 -0700)]
perldelta for
eaaaaa32882752
Father Chrysostomos [Sun, 15 Sep 2013 06:12:54 +0000 (23:12 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 06:10:03 +0000 (23:10 -0700)]
known_pod_issues: Add Devel::CallParser
Father Chrysostomos [Sun, 15 Sep 2013 06:06:52 +0000 (23:06 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 06:05:13 +0000 (23:05 -0700)]
perldelta: two more to-do items
Father Chrysostomos [Sun, 15 Sep 2013 06:02:23 +0000 (23:02 -0700)]
perldelta for
8c9d3376fbf
Father Chrysostomos [Sun, 15 Sep 2013 06:00:20 +0000 (23:00 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 05:57:48 +0000 (22:57 -0700)]
perldelta for 7601007
Father Chrysostomos [Sun, 15 Sep 2013 05:54:53 +0000 (22:54 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 05:53:11 +0000 (22:53 -0700)]
perldelta for
ffdb8b167e/#3643
Father Chrysostomos [Sun, 15 Sep 2013 05:50:48 +0000 (22:50 -0700)]
perldelta for
25502127/#115768
Father Chrysostomos [Sun, 15 Sep 2013 05:47:20 +0000 (22:47 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 04:55:49 +0000 (21:55 -0700)]
perldelta: A to-do item
Father Chrysostomos [Sun, 15 Sep 2013 02:41:50 +0000 (19:41 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 02:39:27 +0000 (19:39 -0700)]
perldelta for
25375124d/#119311
Father Chrysostomos [Sun, 15 Sep 2013 02:31:48 +0000 (19:31 -0700)]
perldelta: correct re description
Father Chrysostomos [Sun, 15 Sep 2013 02:36:18 +0000 (19:36 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 02:27:57 +0000 (19:27 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 02:25:18 +0000 (19:25 -0700)]
perldelta for regexps and 64-bit strings
Father Chrysostomos [Sun, 15 Sep 2013 02:22:45 +0000 (19:22 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 02:20:30 +0000 (19:20 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 02:19:34 +0000 (19:19 -0700)]
perldelta for
c70927a6ffc3ca
Father Chrysostomos [Sun, 15 Sep 2013 02:16:22 +0000 (19:16 -0700)]
perldelta for #119161
Father Chrysostomos [Sun, 15 Sep 2013 01:55:13 +0000 (18:55 -0700)]
perldelta for
bf1b738b6/#118931
Father Chrysostomos [Sun, 15 Sep 2013 01:54:55 +0000 (18:54 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 01:49:03 +0000 (18:49 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 01:46:29 +0000 (18:46 -0700)]
perldelta for
bbfdc870/#118691
Father Chrysostomos [Sun, 15 Sep 2013 01:34:22 +0000 (18:34 -0700)]
perldelta for
ce0d59fdd1c/#7503,#118753
Father Chrysostomos [Sun, 15 Sep 2013 01:29:55 +0000 (18:29 -0700)]
perldelta for
1b268608/#118753
Father Chrysostomos [Sun, 15 Sep 2013 00:36:56 +0000 (17:36 -0700)]
perldelta for
4f62cd62/#118693
Father Chrysostomos [Sun, 15 Sep 2013 00:34:56 +0000 (17:34 -0700)]
perldelta for 3a6ce63
Father Chrysostomos [Sun, 15 Sep 2013 00:34:39 +0000 (17:34 -0700)]
Father Chrysostomos [Sun, 15 Sep 2013 00:29:37 +0000 (17:29 -0700)]
perldelta: missing fullstop
Father Chrysostomos [Sun, 15 Sep 2013 00:27:50 +0000 (17:27 -0700)]
perl5200delta: Devel::NYTProf is fixed
5.06 works with bleadperl.
Father Chrysostomos [Sun, 15 Sep 2013 00:23:11 +0000 (17:23 -0700)]
Reduce false positives for @hsh{$s} and @ary[$s] warnings
This resolves tickets #28380 and #114024.
Commit
95a31aad5 did something similar to this for the new %hash{...}
syntax. This commit extends it to @ slices and combines the two
code paths.
The heuristics in toke.c can easily produce false positives. So the
op is flagged as being a candidate for the warning. Then when op.c
has the op tree available, it examines it to see whether the heuristic
may have been a false positive.
This avoids bugs with qw "foo bar baz" and sub calls triggering
the warning.
The source code is no longer available for the warning, so we recon-
struct it from the op tree, skipping the subscript if it is anything
other than a const op.
This means that @hash{$foo} comes out as @hash{...} and @hash{foo} as
@hash{"foo"}. It also meeans that @hash{"]"} is displayed correctly
instead of as @hash{"].
Commit
95a31aad5 also modified the heuristic for %hash{...} to exempt
qw altogether. But it did not exempt it if it was preceded by a tab.
So this commit rectifies that.
This commit also improves the false positive detection by exempting
any ops returning lists that can get past toke.c’s heuristic. I went
through the entire list of ops, but I may have missed some.
Also, @ slices on the lhs of = are exempt, as they change the context
and are hence actually useful.
Father Chrysostomos [Sat, 14 Sep 2013 18:14:42 +0000 (11:14 -0700)]
dump.c: Dump SLICEWARNING flag for kv[ah]slice, too
I accidentally omitted this in commit
95a31aad5.
Father Chrysostomos [Sat, 14 Sep 2013 01:25:02 +0000 (18:25 -0700)]
Move ‘Scalar value better written as’ tests from toke to op
I am about to move the warning itself from toke.c to op.c. Moving the
tests, too, makes them easier to find for future maintainters who see
it in op.c.
Father Chrysostomos [Fri, 13 Sep 2013 20:49:33 +0000 (13:49 -0700)]
op.c: Factor out common varname code
Steve Hay [Sat, 14 Sep 2013 12:46:21 +0000 (13:46 +0100)]
Upgrade Encode from version 2.54 to 2.55
Steve Hay [Fri, 13 Sep 2013 22:19:09 +0000 (23:19 +0100)]
Remove a __BORLANDC__ stowaway
Support for __BORLANDC__ was axed (actually, chainsawed) in
378eeda70c.
Steve Hay [Fri, 13 Sep 2013 21:57:59 +0000 (22:57 +0100)]
Fix the VC6 build on Windows following commit
3be8f09452
The VC6 compiler has slightly flaky support for __int64 and chokes on util.c
when using the 64-bit implementation of drand48, so switch it to the 32-bit
version instead.
Craig A. Berry [Fri, 13 Sep 2013 19:59:01 +0000 (14:59 -0500)]
fix O_CREAT without O_TRUNC in cpan/autodie/t/utf8_open.t
Awaiting upstream application as [CPAN RT#87237].
Father Chrysostomos [Fri, 13 Sep 2013 20:13:33 +0000 (13:13 -0700)]
Test kv slices in places that expect %{}
Father Chrysostomos [Fri, 13 Sep 2013 09:10:21 +0000 (02:10 -0700)]
op.c:leave_scope: use mg_free before sv_force_normal
This is part of ticket #119295.
Commit 7fa949d (5.19.3) allowed copy-on-write with compile-time con-
stants. That caused this to fail:
use Variable::OnDestruct:
{
my $h = "foo";
on_destruct $h, sub { warn defined $_[0] ? $_[0] : "undef" };
$x++; # prev statement must not be last in the block
}
It prints undef instead of foo.
It turns out this is much older:
use Variable::OnDestruct;
{
my $h = __PACKAGE__;
on_destruct $h, sub { warn defined $_[0] ? $_[0] : "undef" };
$x++; # prev statement must not be last in the block
}
This one prints undef starting with 5.17.3 (
a6d7a4ac1).
But even before that, this prints undef:
use Variable::OnDestruct;
{
my $h = \1;
on_destruct $h, sub { warn defined $_[0] ? $_[0] : "undef" };
$x++; # prev statement must not be last in the block
}
In all these cases, the scalar is getting undefined before free magic
triggers (Variable::OnDestruct uses free magic).
Usually when a scalar is freed, the magic is triggered before anything
else. When a lexical scalar is ‘freed’ on scope exit (cleared for
reuse on scope entry), the order is different. References, globs and
copy-on-write scalars become undefined (via sv_force_normal) before
magic is triggered.
There is no reason for the order to be different here, and it causes
unpredictable behaviour (you never know when you will or will not have
a cow). So change the order in scope exit to match regular freeing.
Nicholas Clark [Tue, 10 Sep 2013 08:32:24 +0000 (10:32 +0200)]
#ifdef DEBUGGING, not QDEBUGGING, in regcomp.c
Father Chrysostomos [Fri, 13 Sep 2013 08:25:55 +0000 (01:25 -0700)]
[Merge] Key/value hash and array slices
Father Chrysostomos [Fri, 13 Sep 2013 01:13:42 +0000 (18:13 -0700)]
Document the %hash{$scalar} warning
Father Chrysostomos [Thu, 12 Sep 2013 21:30:41 +0000 (14:30 -0700)]
Fewer false positives for %hash{$scalar} warning
Instead of warning in the lexer, flag the op and then warn in op.c,
when the op tree is available, so we don’t end up warning for actual
lists or for sub calls.
Also, only warn in scalar context, as in list context $hash{$scalar}
and %hash{$scalar} do different things.
In op.c we no longer have easy access to the source code, so recon-
struct the hash/array access based on the op tree. This means
%hash{foo} becomes %hash{"foo"}. We only reconstruct constant keys,
so %hash{++$x} becomes %hash{...}. This also corrects erroneous
dumps, like %hash{"} for %hash{"}"}.
Instead of triggering the warning solely based on the op tree, we
still keep the heuristic in toke.c, so that common workarounds for
that warning (e.g., {q<key>} and {("key")}) continue to work.
The heuristic in toke.c is tweaked to avoid warning for qw().
In a future commit I plan to extend this to the existing @array[0] and
@hash{key} warnings, to avoid false positives.
Father Chrysostomos [Sun, 8 Sep 2013 23:11:29 +0000 (16:11 -0700)]
pp.c: Allow 64-bit stack offsets in kv[ah]slice
Father Chrysostomos [Sun, 8 Sep 2013 22:50:46 +0000 (15:50 -0700)]
Improve new slice docs in perldata.pod
Father Chrysostomos [Sun, 8 Sep 2013 21:55:34 +0000 (14:55 -0700)]
perldata.pod: Capitalise =head3 consistently
Father Chrysostomos [Sun, 8 Sep 2013 21:54:40 +0000 (14:54 -0700)]
perldata.pod: consistent spaces after dots
Father Chrysostomos [Sun, 8 Sep 2013 21:51:27 +0000 (14:51 -0700)]
pp.c:pp_kvhslice: remove unused var
Father Chrysostomos [Sun, 8 Sep 2013 21:50:00 +0000 (14:50 -0700)]
Increase $B::Deparse::VERSION to 1.23
Father Chrysostomos [Sun, 8 Sep 2013 21:49:24 +0000 (14:49 -0700)]
Increase $Opcode::VERSION to 1.26
Father Chrysostomos [Sun, 8 Sep 2013 21:48:26 +0000 (14:48 -0700)]
Add new opcodes to Opcode.pm
Father Chrysostomos [Sun, 8 Sep 2013 21:38:24 +0000 (14:38 -0700)]
Sort MANIFEST
Father Chrysostomos [Sun, 8 Sep 2013 21:19:34 +0000 (14:19 -0700)]
Use diag_listed_as two suppress two diag.t failures
Father Chrysostomos [Sun, 8 Sep 2013 21:19:13 +0000 (14:19 -0700)]
Add two missing perldiag entries