Subject: | ref changes in perl 5.19.3 |
Date: | Wed, 28 Aug 2013 11:22:03 +0100 |
To: | bug-Data-Dump-Streamer [...] rt.cpan.org |
From: | Zefram <zefram [...] fysh.org> |
Some of DDS's tests are now failing, due to changes in core behaviour
in perl 5.19.3. Small test case:
$ perl5.19.2 -MData::Dump::Streamer -lwe 'Dump(\\\"foo")'
$REF1 = \\\'foo';
$ perl5.19.3 -MData::Dump::Streamer -lwe 'Dump(\\\"foo")'
$REF1 = \\do { my $v = \'foo' };
DDS is perceiving these refs differently because the flags set on refs
generated this way have changed:
$ perl5.19.2 -MDevel::Peek -lwe 'Dump(\\\"foo")'
SV = IV(0x95744f8) at 0x95744fc
REFCNT = 1
FLAGS = (ROK,READONLY)
RV = 0x9574510
SV = IV(0x957450c) at 0x9574510
REFCNT = 1
FLAGS = (ROK,READONLY)
RV = 0x9574498
SV = IV(0x9574494) at 0x9574498
REFCNT = 1
FLAGS = (ROK,READONLY)
RV = 0x95744d4
SV = PV(0x9566028) at 0x95744d4
REFCNT = 1
FLAGS = (POK,READONLY,pPOK)
PV = 0x9578e00 "foo"\0
CUR = 3
LEN = 12
$ perl5.19.3 -MDevel::Peek -lwe 'Dump(\\\"foo")'
SV = IV(0x86ca200) at 0x86ca204
REFCNT = 1
FLAGS = (PADTMP,ROK,READONLY)
RV = 0x86d9548
SV = IV(0x86d9544) at 0x86d9548
REFCNT = 1
FLAGS = (ROK)
RV = 0x86d9570
SV = IV(0x86d956c) at 0x86d9570
REFCNT = 1
FLAGS = (ROK)
RV = 0x86d9534
SV = PV(0x86cb038) at 0x86d9534
REFCNT = 1
FLAGS = (POK,READONLY,IsCOW,pPOK)
PV = 0x86ddf20 "foo"\0
CUR = 3
LEN = 12
COW_REFCNT = 0
Readonlyness and reference semantics are not settled. Due to [perl
#119501] there will likely be further change in 5.19.4.
-zefram