platform/upstream/perl.git
11 years agoperldelta - Update new/changed diagnostics section
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.

11 years agoperldelta - Update new/changed documentation section
Steve Hay [Sun, 15 Sep 2013 22:26:44 +0000 (23:26 +0100)]
perldelta - Update new/changed documentation section

11 years agoperldelta - Fill in a TODO item for a module, which I forgot earlier
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

11 years agoperldelta - New test scripts
Steve Hay [Sun, 15 Sep 2013 21:55:47 +0000 (22:55 +0100)]
perldelta - New test scripts

11 years agoperldata.pod: Mention what version introduced kv slices
Father Chrysostomos [Sun, 15 Sep 2013 22:37:06 +0000 (15:37 -0700)]
perldata.pod: Mention what version introduced kv slices

11 years agoop.h: Describe entersub and rv2cv flags
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.

11 years agoUse dev version for JSON::PP
Father Chrysostomos [Sun, 15 Sep 2013 20:38:18 +0000 (13:38 -0700)]
Use dev version for JSON::PP

11 years agoFix precedence issue in JSON::PP
Father Chrysostomos [Sun, 15 Sep 2013 20:37:56 +0000 (13:37 -0700)]
Fix precedence issue in JSON::PP

11 years agoUse dev version for Test::Builder et al.
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.

11 years agoop.c: Warn on "return $a or $b" [perl #59802]
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>
11 years agoTest::Builder: Fix "return $a or $b" precedence issue
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>
11 years agoperldelta for e9827b374
Chris 'BinGOs' Williams [Sun, 15 Sep 2013 20:56:22 +0000 (21:56 +0100)]
perldelta for e9827b374

11 years agoRemove -lbsd from optional libs on GNU/Hurd too
Chris 'BinGOs' Williams [Sun, 15 Sep 2013 20:00:55 +0000 (21:00 +0100)]
Remove -lbsd from optional libs on GNU/Hurd too

11 years agosv.h: Make BmUSEFUL the same type on debug/non-debug builds
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.

11 years agoperldelta - Module upgrades
Steve Hay [Sun, 15 Sep 2013 18:04:04 +0000 (19:04 +0100)]
perldelta - Module upgrades

11 years agoperldelta - A little copy-editing
Steve Hay [Sun, 15 Sep 2013 17:44:56 +0000 (18:44 +0100)]
perldelta - A little copy-editing

11 years agoperldelta - Restore 525553cafc, accidentally undone by e7f2d65136
Steve Hay [Sun, 15 Sep 2013 16:27:30 +0000 (17:27 +0100)]
perldelta - Restore 525553cafc, accidentally undone by e7f2d65136

11 years agoExtUtils::ParseXS: bump version of related modules
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.

11 years agoperldelta for 429a25554/#28380,#114024
Father Chrysostomos [Sun, 15 Sep 2013 06:25:04 +0000 (23:25 -0700)]
perldelta for 429a25554/#28380,#114024

11 years agoperldelta for b846c0c86e5
Father Chrysostomos [Sun, 15 Sep 2013 06:22:10 +0000 (23:22 -0700)]
perldelta for b846c0c86e5

11 years agoperldelta for e15ca23a92
Father Chrysostomos [Sun, 15 Sep 2013 06:20:51 +0000 (23:20 -0700)]
perldelta for e15ca23a92

11 years agoIncrease $ExtUtils::ParseXS::VERSION to 3.23
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!

11 years agoperldelta for ad39f3a27
Father Chrysostomos [Sun, 15 Sep 2013 06:15:37 +0000 (23:15 -0700)]
perldelta for ad39f3a27

11 years agoperldelta for eaaaaa32882752
Father Chrysostomos [Sun, 15 Sep 2013 06:14:51 +0000 (23:14 -0700)]
perldelta for eaaaaa32882752

11 years agoperldelta for fdc185567
Father Chrysostomos [Sun, 15 Sep 2013 06:12:54 +0000 (23:12 -0700)]
perldelta for fdc185567

11 years agoknown_pod_issues: Add Devel::CallParser
Father Chrysostomos [Sun, 15 Sep 2013 06:10:03 +0000 (23:10 -0700)]
known_pod_issues: Add Devel::CallParser

11 years agoperldelta for 6ddcf93b
Father Chrysostomos [Sun, 15 Sep 2013 06:06:52 +0000 (23:06 -0700)]
perldelta for 6ddcf93b

11 years agoperldelta: two more to-do items
Father Chrysostomos [Sun, 15 Sep 2013 06:05:13 +0000 (23:05 -0700)]
perldelta: two more to-do items

11 years agoperldelta for 8c9d3376fbf
Father Chrysostomos [Sun, 15 Sep 2013 06:02:23 +0000 (23:02 -0700)]
perldelta for 8c9d3376fbf

11 years agoperldelta for dd2a7f9048
Father Chrysostomos [Sun, 15 Sep 2013 06:00:20 +0000 (23:00 -0700)]
perldelta for dd2a7f9048

11 years agoperldelta for 7601007
Father Chrysostomos [Sun, 15 Sep 2013 05:57:48 +0000 (22:57 -0700)]
perldelta for 7601007

11 years agoperldelta for 65c68e1718
Father Chrysostomos [Sun, 15 Sep 2013 05:54:53 +0000 (22:54 -0700)]
perldelta for 65c68e1718

11 years agoperldelta for ffdb8b167e/#3643
Father Chrysostomos [Sun, 15 Sep 2013 05:53:11 +0000 (22:53 -0700)]
perldelta for ffdb8b167e/#3643

11 years agoperldelta for 25502127/#115768
Father Chrysostomos [Sun, 15 Sep 2013 05:50:48 +0000 (22:50 -0700)]
perldelta for 25502127/#115768

11 years agoperldelta for cbd58baf59
Father Chrysostomos [Sun, 15 Sep 2013 05:47:20 +0000 (22:47 -0700)]
perldelta for cbd58baf59

11 years agoperldelta: A to-do item
Father Chrysostomos [Sun, 15 Sep 2013 04:55:49 +0000 (21:55 -0700)]
perldelta: A to-do item

11 years agoperldelta for 66230c862b
Father Chrysostomos [Sun, 15 Sep 2013 02:41:50 +0000 (19:41 -0700)]
perldelta for 66230c862b

11 years agoperldelta for 25375124d/#119311
Father Chrysostomos [Sun, 15 Sep 2013 02:39:27 +0000 (19:39 -0700)]
perldelta for 25375124d/#119311

11 years agoperldelta: correct re description
Father Chrysostomos [Sun, 15 Sep 2013 02:31:48 +0000 (19:31 -0700)]
perldelta: correct re description

11 years agoperldelta for 35995e5c
Father Chrysostomos [Sun, 15 Sep 2013 02:36:18 +0000 (19:36 -0700)]
perldelta for 35995e5c

11 years agoperldelta for 232af1f839
Father Chrysostomos [Sun, 15 Sep 2013 02:27:57 +0000 (19:27 -0700)]
perldelta for 232af1f839

11 years agoperldelta for regexps and 64-bit strings
Father Chrysostomos [Sun, 15 Sep 2013 02:25:18 +0000 (19:25 -0700)]
perldelta for regexps and 64-bit strings

11 years agoperldelta for 25fdce4a16
Father Chrysostomos [Sun, 15 Sep 2013 02:22:45 +0000 (19:22 -0700)]
perldelta for 25fdce4a16

11 years agoperldelta for 83694831
Father Chrysostomos [Sun, 15 Sep 2013 02:20:30 +0000 (19:20 -0700)]
perldelta for 83694831

11 years agoperldelta for c70927a6ffc3ca
Father Chrysostomos [Sun, 15 Sep 2013 02:19:34 +0000 (19:19 -0700)]
perldelta for c70927a6ffc3ca

11 years agoperldelta for #119161
Father Chrysostomos [Sun, 15 Sep 2013 02:16:22 +0000 (19:16 -0700)]
perldelta for #119161

11 years agoperldelta for bf1b738b6/#118931
Father Chrysostomos [Sun, 15 Sep 2013 01:55:13 +0000 (18:55 -0700)]
perldelta for bf1b738b6/#118931

11 years agoperldelta for d4a823b3
Father Chrysostomos [Sun, 15 Sep 2013 01:54:55 +0000 (18:54 -0700)]
perldelta for d4a823b3

11 years agoperldelta for d4a823b39
Father Chrysostomos [Sun, 15 Sep 2013 01:49:03 +0000 (18:49 -0700)]
perldelta for d4a823b39

11 years agoperldelta for bbfdc870/#118691
Father Chrysostomos [Sun, 15 Sep 2013 01:46:29 +0000 (18:46 -0700)]
perldelta for bbfdc870/#118691

11 years agoperldelta for ce0d59fdd1c/#7503,#118753
Father Chrysostomos [Sun, 15 Sep 2013 01:34:22 +0000 (18:34 -0700)]
perldelta for ce0d59fdd1c/#7503,#118753

11 years agoperldelta for 1b268608/#118753
Father Chrysostomos [Sun, 15 Sep 2013 01:29:55 +0000 (18:29 -0700)]
perldelta for 1b268608/#118753

11 years agoperldelta for 4f62cd62/#118693
Father Chrysostomos [Sun, 15 Sep 2013 00:36:56 +0000 (17:36 -0700)]
perldelta for 4f62cd62/#118693

11 years agoperldelta for 3a6ce63
Father Chrysostomos [Sun, 15 Sep 2013 00:34:56 +0000 (17:34 -0700)]
perldelta for 3a6ce63

11 years agoperldelta for 25451ceff7
Father Chrysostomos [Sun, 15 Sep 2013 00:34:39 +0000 (17:34 -0700)]
perldelta for 25451ceff7

11 years agoperldelta: missing fullstop
Father Chrysostomos [Sun, 15 Sep 2013 00:29:37 +0000 (17:29 -0700)]
perldelta: missing fullstop

11 years agoperl5200delta: Devel::NYTProf is fixed
Father Chrysostomos [Sun, 15 Sep 2013 00:27:50 +0000 (17:27 -0700)]
perl5200delta: Devel::NYTProf is fixed

5.06 works with bleadperl.

11 years agoReduce false positives for @hsh{$s} and @ary[$s] warnings
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.

11 years agodump.c: Dump SLICEWARNING flag for kv[ah]slice, too
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.

11 years agoMove ‘Scalar value better written as’ tests from toke to op
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.

11 years agoop.c: Factor out common varname code
Father Chrysostomos [Fri, 13 Sep 2013 20:49:33 +0000 (13:49 -0700)]
op.c: Factor out common varname code

11 years agoUpgrade Encode from version 2.54 to 2.55
Steve Hay [Sat, 14 Sep 2013 12:46:21 +0000 (13:46 +0100)]
Upgrade Encode from version 2.54 to 2.55

11 years agoRemove a __BORLANDC__ stowaway
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.

11 years agoFix the VC6 build on Windows following commit 3be8f09452
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.

11 years agofix O_CREAT without O_TRUNC in cpan/autodie/t/utf8_open.t
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].

11 years agoTest kv slices in places that expect %{}
Father Chrysostomos [Fri, 13 Sep 2013 20:13:33 +0000 (13:13 -0700)]
Test kv slices in places that expect %{}

11 years agoop.c:leave_scope: use mg_free before sv_force_normal
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.

11 years ago#ifdef DEBUGGING, not QDEBUGGING, in regcomp.c
Nicholas Clark [Tue, 10 Sep 2013 08:32:24 +0000 (10:32 +0200)]
#ifdef DEBUGGING, not QDEBUGGING, in regcomp.c

11 years ago[Merge] Key/value hash and array slices
Father Chrysostomos [Fri, 13 Sep 2013 08:25:55 +0000 (01:25 -0700)]
[Merge] Key/value hash and array slices

11 years agoDocument the %hash{$scalar} warning
Father Chrysostomos [Fri, 13 Sep 2013 01:13:42 +0000 (18:13 -0700)]
Document the %hash{$scalar} warning

11 years agoFewer false positives for %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.

11 years agopp.c: Allow 64-bit stack offsets in kv[ah]slice
Father Chrysostomos [Sun, 8 Sep 2013 23:11:29 +0000 (16:11 -0700)]
pp.c: Allow 64-bit stack offsets in kv[ah]slice

11 years agoImprove new slice docs in perldata.pod
Father Chrysostomos [Sun, 8 Sep 2013 22:50:46 +0000 (15:50 -0700)]
Improve new slice docs in perldata.pod

11 years agoperldata.pod: Capitalise =head3 consistently
Father Chrysostomos [Sun, 8 Sep 2013 21:55:34 +0000 (14:55 -0700)]
perldata.pod: Capitalise =head3 consistently

11 years agoperldata.pod: consistent spaces after dots
Father Chrysostomos [Sun, 8 Sep 2013 21:54:40 +0000 (14:54 -0700)]
perldata.pod: consistent spaces after dots

11 years agopp.c:pp_kvhslice: remove unused var
Father Chrysostomos [Sun, 8 Sep 2013 21:51:27 +0000 (14:51 -0700)]
pp.c:pp_kvhslice: remove unused var

11 years agoIncrease $B::Deparse::VERSION to 1.23
Father Chrysostomos [Sun, 8 Sep 2013 21:50:00 +0000 (14:50 -0700)]
Increase $B::Deparse::VERSION to 1.23

11 years agoIncrease $Opcode::VERSION to 1.26
Father Chrysostomos [Sun, 8 Sep 2013 21:49:24 +0000 (14:49 -0700)]
Increase $Opcode::VERSION to 1.26

11 years agoAdd new opcodes to Opcode.pm
Father Chrysostomos [Sun, 8 Sep 2013 21:48:26 +0000 (14:48 -0700)]
Add new opcodes to Opcode.pm

11 years agoSort MANIFEST
Father Chrysostomos [Sun, 8 Sep 2013 21:38:24 +0000 (14:38 -0700)]
Sort MANIFEST

11 years agoUse diag_listed_as two suppress two diag.t failures
Father Chrysostomos [Sun, 8 Sep 2013 21:19:34 +0000 (14:19 -0700)]
Use diag_listed_as two suppress two diag.t failures

11 years agoAdd two missing perldiag entries
Father Chrysostomos [Sun, 8 Sep 2013 21:19:13 +0000 (14:19 -0700)]
Add two missing perldiag entries

11 years agoHard-code op name in ck_exists|delete errors
Father Chrysostomos [Sun, 8 Sep 2013 21:09:23 +0000 (14:09 -0700)]
Hard-code op name in ck_exists|delete errors

The reason is manifold:
• ck_exists and ck_delete are each only ever called with one op type,
  so we can hard-code the op, which takes less code.
• The messages in perldiag are more helpful if they include
  the op name.
• Changing them in op.c too avoids the need for
  diag_listed_as clutter.

(I know, two of these are not listed in perldiag yet.  I’m get-
ting to that.)

11 years agoSuppress a warning in kvhslice.t
Father Chrysostomos [Sun, 8 Sep 2013 20:53:23 +0000 (13:53 -0700)]
Suppress a warning in kvhslice.t

The bugginess of the ‘Scalar value better written as...’ warning
applies to %new{silce} syntax, too.

11 years agoupdate manifest
Ruslan Zakirov [Sun, 8 Sep 2013 18:13:06 +0000 (22:13 +0400)]
update manifest

11 years agoshort documentation for key/value hash/array slices
Ruslan Zakirov [Sun, 8 Sep 2013 15:40:34 +0000 (19:40 +0400)]
short documentation for key/value hash/array slices

11 years agotest index/value array slices
Ruslan Zakirov [Sat, 7 Sep 2013 17:41:45 +0000 (21:41 +0400)]
test index/value array slices

11 years agotest key/value hash slices
Ruslan Zakirov [Tue, 12 Mar 2013 13:00:48 +0000 (17:00 +0400)]
test key/value hash slices

11 years agoindex/value array slice operation
Ruslan Zakirov [Sat, 2 Mar 2013 12:57:41 +0000 (16:57 +0400)]
index/value array slice operation

kvaslice operator that imlements %a[0,2,4] syntax which
result in list of index/value pairs. Implemented in
consistency with "key/value hash slice" operator.

11 years agoscalar value %x{'a'} better written as $x{'a'}
Ruslan Zakirov [Sun, 24 Mar 2013 11:53:12 +0000 (15:53 +0400)]
scalar value %x{'a'} better written as $x{'a'}

11 years agokey/value hash slice operation
Ruslan Zakirov [Wed, 27 Feb 2013 15:39:39 +0000 (19:39 +0400)]
key/value hash slice operation

kvhslice operator that implements %h{1,2,3,4} syntax which
returns list of key value pairs rather than just values
(regular slices).

11 years agoMove BmUSEFUL to the IV slot from the NV slot, simplifying union _xnvu.
Nicholas Clark [Wed, 11 Sep 2013 09:26:29 +0000 (11:26 +0200)]
Move BmUSEFUL to the IV slot from the NV slot, simplifying union _xnvu.

This change is made possible by commit 8922e4382e9c1488 (June 2013), which
eliminated BmPREVIOUS, which had been using the IV slot.

11 years agoPreserve undef identity in const ops
Father Chrysostomos [Fri, 13 Sep 2013 01:26:30 +0000 (18:26 -0700)]
Preserve undef identity in const ops

This fixes the one remaining issue in ticket #105906.

Under ithreads, the constants are transferred to the pad at compile
time.  Since the pads are AVs, and since AVs used &PL_sv_undef to rep-
resent unused slots, &PL_sv_undef could not be stored in the pad, and
so was copied.

That meant the same constant would produce a different scalar at each
call site:

$  ./perl -Ilib -le 'BEGIN { $::{z} = \undef }  for(z,z) { print \$_ }'
SCALAR(0x7fecb38062e0)
SCALAR(0x7fecb3806100)

Commit ce0d59f changed the way AVs work, so now we *can* store
&PL_sv_undef in an AV meaningfully, and there is no longer any need
for this copying hack.

11 years agoconvert mktables to parent.pm instead of base.pm
Ricardo Signes [Fri, 13 Sep 2013 01:36:54 +0000 (21:36 -0400)]
convert mktables to parent.pm instead of base.pm

11 years agoperldelta for e7ab04ce5
Tony Cook [Fri, 13 Sep 2013 01:51:45 +0000 (11:51 +1000)]
perldelta for e7ab04ce5

11 years ago[perl #115928] use a consistent internal rand on all platforms
Tony Cook [Fri, 13 Sep 2013 01:34:16 +0000 (11:34 +1000)]
[perl #115928] use a consistent internal rand on all platforms

11 years ago[perl #115928] we don't use drand48_r or random_r any longer
Tony Cook [Tue, 10 Sep 2013 00:09:43 +0000 (10:09 +1000)]
[perl #115928] we don't use drand48_r or random_r any longer

Removing this should mean that metaconfig will remove the units from
the built Configure

11 years ago[perl #115928] Configure now selects our internal drand48()
Tony Cook [Mon, 9 Sep 2013 04:06:35 +0000 (14:06 +1000)]
[perl #115928] Configure now selects our internal drand48()

11 years agorevert config_h.SH changes, now handled by Configure
Tony Cook [Thu, 29 Aug 2013 04:52:15 +0000 (14:52 +1000)]
revert config_h.SH changes, now handled by Configure

11 years ago[perl #115928] a consistent (public) rand() implementation
Tony Cook [Mon, 9 Sep 2013 04:44:57 +0000 (14:44 +1000)]
[perl #115928] a consistent (public) rand() implementation

Based on Yves's random branch work.

This version makes the new random number visible to external modules,
for example, List::Util's XS shuffle() implementation.

I've also added a 64-bit implementation when HAS_QUAD is true, this
should be significantly faster, even on 32-bit CPUs.  This is intended to
produce exactly the same sequence as the original implementation.

The original version of this commit retained the "freebsd" name from
Yves's original work for the function and data structure names.  I've
removed "freebsd" from most function names so the name isn't an issue
if we choose to replace the implementation,