develooper Front page | perl.perl5.porters | Postings from February 2013

Re: blocker: disable new COW by default

Thread Previous
From:
demerphq
Date:
February 16, 2013 13:58
Subject:
Re: blocker: disable new COW by default
Message ID:
CANgJU+W9EK1cvvp_QX7sK-7_MA+u9kDidmb7tOmw0V45OSyidQ@mail.gmail.com
On 16 February 2013 13:51, demerphq <demerphq@gmail.com> wrote:
> On 16 February 2013 05:27, demerphq <demerphq@gmail.com> wrote:
>> On 16 February 2013 04:42, Ricardo Signes <perl.p5p@rjbs.manxome.org> wrote:
>>>
>>> We've seen many different kinds of breakage from the new COW code.  I think in
>>> general the new COW is going to be very nice over time, but right now it's
>>> causing problems and we want more time to sort out solutions.
>>>
>>> I believe there is/was a define for enabling the old/new COW behavior, and what
>>> we'll want to do is reverse the current default. Right?
>>
>> That matches my understanding.
>>
>>> See this tickets, especially the last:
>>>
>>>   https://rt.perl.org/rt3/Ticket/Display.html?id=115910
>>>   https://rt.perl.org/rt3/Ticket/Display.html?id=116158
>>>   https://rt.perl.org/rt3/Ticket/Display.html?id=116326
>>>
>>> Patches wanted.
>
> I just tried switch back to the old version, and discovered we fail
> test, but not too many, so it might be easy to fix.
>
> I will investigate further sometime.

So two tests fail:

Failed 2 tests out of 2240, 99.91% okay.
	../ext/Devel-Peek/t/Peek.t
	../ext/PerlIO-encoding/t/encoding.t

And here is the detail output:

TESTFILE=harness  ./runtests choose
../ext/Devel-Peek/t/Peek.t .. 1/?
#   Failed test 'scalar with pos magic'
#   at t/Peek.t line 80.
#                   'SV = PVMG(0x2b23b00) at 0x2b2d8b8
#   REFCNT = 1
#   FLAGS = (PADMY,SMG,POK,pPOK)
#   IV = 41062824
#   NV = 0
#   PV = 0x2af4430 ""\0
#   CUR = 0
#   LEN = 16
#   MAGIC = 0x2983d50
#     MG_VIRTUAL = &PL_vtbl_mglob
#     MG_TYPE = PERL_MAGIC_regex_global(g)
#     MG_FLAGS = 0x01
#       MINMATCH
# '
#     doesn't match '(?^ms:\A(?:ALLOCATED at .*?
# )?SV = PVMG\(0x[[:xdigit:]]+\) at 0x[[:xdigit:]]+
#   REFCNT = 1
#   FLAGS = \(PADMY,SMG,POK,(?:IsCOW,)?pPOK\)
#   IV = 0
#   NV = 0
#   PV = 0x[[:xdigit:]]+ ""\\0
#   CUR = 0
#   LEN = \d+(?:
#   COW_REFCNT = 1)?
#   MAGIC = 0x[[:xdigit:]]+
#     MG_VIRTUAL = &PL_vtbl_mglob
#     MG_TYPE = PERL_MAGIC_regex_global\(g\)
#     MG_FLAGS = 0x01
#       MINMATCH\Z)'
# Looks like you failed 1 test of 82.
../ext/Devel-Peek/t/Peek.t .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/82 subtests
	(less 1 skipped subtest: 80 okay)

Test Summary Report
-------------------
../ext/Devel-Peek/t/Peek.t (Wstat: 256 Tests: 82 Failed: 1)
  Failed test:  39
  Non-zero exit status: 1
Files=1, Tests=82,  0 wallclock secs ( 0.03 usr  0.01 sys +  0.09 cusr
 0.02 csys =  0.15 CPU)
Result: FAIL
make: *** [test_harness] Error 1

TESTFILE=harness  ./runtests choose
../ext/PerlIO-encoding/t/encoding.t .. 1/24 perl: hv.c:2524:
S_unshare_hek_or_pvn: Assertion `he->shared_he_he.hent_hek == hek'
failed.
../ext/PerlIO-encoding/t/encoding.t .. Failed 5/24 subtests

Test Summary Report
-------------------
../ext/PerlIO-encoding/t/encoding.t (Wstat: 6 Tests: 19 Failed: 0)
  Non-zero wait status: 6
  Parse errors: Bad plan.  You planned 24 tests but ran 19.
Files=1, Tests=19,  0 wallclock secs ( 0.03 usr  0.00 sys +  0.09 cusr
 0.00 csys =  0.12 CPU)
Result: FAIL
make: *** [test_harness] Error 1

Neither make immediate sense to me. Hopefully they might to others.

FWIW, I am more likely to be able to achieve traction on the hv.c one,
but it will take time.

Also, IIUIC my patch didn't test what happens if we enable
PERL_SAWAMPERSAND, which I believe is required to fix the regex COW
bug. I will try to investigate that as well.

Cheers,
Yves

-- 
perl -Mre=debug -e "/just|another|perl|hacker/"

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About