delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/07/09/06:18:55

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Message-ID: <6910a60807090318l5fdb924djc48bb860f6ba1d7@mail.gmail.com>
Date: Wed, 9 Jul 2008 12:18:18 +0200
From: "Reini Urban" <rurban AT x-ray DOT at>
To: cygwin AT cygwin DOT com
Subject: Re: perl-5.10.0-4 -> perl-5.10.0-5 update appears to break DateTime
Cc: P5P <perl5-porters AT perl DOT org>
In-Reply-To: <6910a60807082336r3c310a8eg7ae9f6d46a18794f@mail.gmail.com>
MIME-Version: 1.0
References: <BC63B2B8CA0F4F81B6C0241599C8178E AT DFW5RB41> <6910a60807080841s1af07bf7q83dd9820ccb484c9 AT mail DOT gmail DOT com> <6910a60807082336r3c310a8eg7ae9f6d46a18794f AT mail DOT gmail DOT com>
X-Google-Sender-Auth: bb517d92fb0c060a
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

2008/7/9 Reini Urban:
> 2008/7/8 Reini Urban:
>> 2008/7/8 Gary R. Van Sickle:
>>> Hi Reini,
>>>
>>> It looks like something changed between perl 5.10.0-4 and -5 which breaks
>>> the DateTime module from CPAN (version 0.4302, latest).  The attached Simple
>>> Test Case(tm) results in only the following errors:
>>>
>>> Use of uninitialized value $id in pattern match (m//) at
>>> /usr/lib/perl5/site_perl/5.10/DateTime/Locale.pm line 65.
>>
>> Bad side-effect with a third party module in site_perl.
>> Strange that I didn't see this in my tests, because I tested over
>> thousand CPAN modules with this release.
>> Oh, I see, I reported that it failed on June 5.
>>
>> $ cpan DateTime
>> requires DateTime::Locale
>>
>> DateTime::Locale cannot be installed because of this error,
>> but since you upgraded perl we have to fix DateTime::Locale now.
>>
>> Oops. This seems to affect more modules.
>> Params::Validate with type => SCALAR seems to be broken.
>>  http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Params%3A%3AValidate
>>
>> I have to go now, but will provide a patch soon.
>> As workaround I would disable the validation in DateTime::Locale::_register
>> but this also doesn't work as expected.
>>
>>    if (! defined $p{id} or !$id) {
>>        # cygperl5 error in Params::Validate?
>>        #warn "Broken Params::Validate. Given ".join(",",@_);
>>        $p{id} = $_[0];
>>        $p{en_language} = $_[1];
>>        my @keys = qw(en_script en_territory en_variant native_language
>> native_script native_territory native_variant class replace);
>>        for my $i (2 .. @_) {
>>            $p{$keys[$i]} = $_[$i];
>>        }
>>    }
>
> Update on this issue:
> As you can see, there's only one machine with this error, which is my laptop.
> http://cpantesters.perl.org/show/DateTime-Locale.html#DateTime-Locale-0.4001
> My normal devel machine passed the DateTime::Locale test, which is weird.
> I also pass the Params::Validate test on my laptop, which is weirder,
> because this fails for DateTime::Locale on my laptop.
>
> Anyway, until I find out the differences between my laptop and my
> devel machine,
> the short summary:
>
> Params::Validate fails in an BEGIN block, in a type => SCALAR check only on
> certain machines with 5.10.0 patch 34065 on Cygwin. (Tested only
> release and patch 34065).
> Reproducible with DateTime::Locale.
> Within the debugger everything works ok. (Probably because of the BEGIN block)
> The other DateTime::Locale reports show no clue.
> There's a Darwin report on the same patchlevel which passed.
>
> Within DateTime-Locale-0.4001 after make
> even perl -Mblib -cw t/01basic.t fails with the same errors.
>
> Moving the register call from BEGIN to INIT also does not help.

The adhoc workaround for perl-5.10.0-5 is to move away the Validate XS module:

mv /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Params/Validate/Validate.dll \
  /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/Params/Validate/_Validate.dll

Now it works, because Params::Validate has a slower pure-perl fallback.
-- 
Reini Urban
http://phpwiki.org/ http://murbreak.at/

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019