This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for \$_.\$_ no longer giving 2 addresses
authorFather Chrysostomos <sprout@cpan.org>
Mon, 12 Aug 2013 21:21:25 +0000 (14:21 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Tue, 13 Aug 2013 01:04:05 +0000 (18:04 -0700)
325e181 pad.c: Use &PL_sv_no for const pad names
82b84d0 op.c: Stop copying constants under ithreads
4891fdf pad.c: cast before comparing signed with unsigned
a0ed822 [perl #78194] Make grep/map copy pad tmps
b479c9f [perl #78194] Make sub calls copy pad tmps
8e079c2 [perl #78194] Make foreach copy pad tmps
706a6eb [perl #78194] Make list slices copy PADTMPs in lv cx
da9e430 [perl #78194] Make x copy PADTMPs in lv cx
2b66f6d [perl #78194] Make sort copy PADTMPs
82c2360 [perl #78194] Make re-evals copy PADTMPs
fb09017 pad.c apidocs: Clarify use of &PL_sv_no

pod/perldelta.pod

index becd10d..1c07a51 100644 (file)
@@ -460,6 +460,15 @@ that had had a glob assigned to it.  This has been fixed [perl #119051].
 On 64-bit platforms C<pos> can now be set to a value higher than 2**31-1
 [perl #72766].
 
+=item *
+
+Perl used to leak an implementation detail when it came to referencing the
+return values of certain operators.  C<for ($a+$b) { warn \$_; warn \$_ }>
+used to display two different memory addresses, because the C<\> operator
+was copying the variable.  Under threaded builds, it would also happen for
+constants (C<for(1) { ... }>).  This has been fixed [perl #21979, #78194,
+#89188, #109746, #114838, #115388].
+
 =back
 
 =head1 Known Problems