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" 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 In-Reply-To: <6910a60807082336r3c310a8eg7ae9f6d46a18794f@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <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 Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , 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/