Hello community, here is the log from the commit of package perl-PadWalker for openSUSE:Factory checked in at 2013-06-13 18:19:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-PadWalker (Old) and /work/SRC/openSUSE:Factory/.perl-PadWalker.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-PadWalker" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-PadWalker/perl-PadWalker.changes 2011-09-23 12:38:30.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-PadWalker.new/perl-PadWalker.changes 2013-06-13 18:19:24.000000000 +0200 @@ -1,0 +2,9 @@ +Sat Jun 8 10:35:24 UTC 2013 - rschweik...@suse.com + +- Update to latest source, version 1.96 + + Correct the version number in META.yml + + Make one of the tests a bit more flexible, to accommodate a subtle + change in behaviour caused by a recent change to perl + + Restore compatibility with Perl 5.8 + +------------------------------------------------------------------- Old: ---- PadWalker-1.92.tar.gz New: ---- PadWalker-1.96.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-PadWalker.spec ++++++ --- /var/tmp/diff_new_pack.xFdDkH/_old 2013-06-13 18:19:24.000000000 +0200 +++ /var/tmp/diff_new_pack.xFdDkH/_new 2013-06-13 18:19:24.000000000 +0200 @@ -1,7 +1,7 @@ # -# spec file for package perl-PadWalker (Version 1.92) +# spec file for package perl-PadWalker # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,16 +15,14 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild - Name: perl-PadWalker %define cpan_name PadWalker Summary: Play with other peoples' lexical variables -Version: 1.92 -Release: 2 License: GPL-1.0+ or Artistic-1.0 Group: Development/Libraries/Perl +Version: 1.96 +Release: 0 Url: http://search.cpan.org/dist/PadWalker/ Source: http://www.cpan.org/authors/id/R/RO/ROBIN/PadWalker-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ PadWalker-1.92.tar.gz -> PadWalker-1.96.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/Changes new/PadWalker-1.96/Changes --- old/PadWalker-1.92/Changes 2010-07-15 18:21:44.000000000 +0200 +++ new/PadWalker-1.96/Changes 2012-08-24 14:03:58.000000000 +0200 @@ -135,3 +135,25 @@ - Remove "Jobsian dot file cruft" reported by Steve Mynott. - Incorporate patch from Fuji, Goro, correcting earlier patch from Yuval Kogman. +1.93 Sun 5 Feb 2012 15:52:57 GMT + - Correct the version number in META.yml + (https://rt.cpan.org/Ticket/Display.html?id=59459) + Do this by using MakeMaker to auto-generate META.yml, to prevent + similar problems in future. This is possible because the new + MakeMaker parameter MIN_PERL_VERSION was added in MakeMaker 6.47_01; + the fact that this didn’t used to exist is the reason we managed META.yml + by hand till now. + +1.94 Tue 26 Jun 2012 09:51:27 BST + - Make one of the tests a bit more flexible, to accommodate a subtle + change in behaviour caused by a recent change to perl + (viz a0d2bbd5c47035a4f7369e4fddd46b502764d86e). + +1.95 Thu 23 Aug 2012 11:42:21 BST + - Pad changes in 5.17.4-to-be + This is a patch from Father Chrysostomous. + See https://rt.cpan.org/Public/Bug/Display.html?id=79154 + +1.96 Fri 24 Aug 2012 13:03:31 BST + - Restore compatibility with Perl 5.8 + Thanks again to Father Chrysostomous diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/META.yml new/PadWalker-1.96/META.yml --- old/PadWalker-1.92/META.yml 2008-02-04 10:57:40.000000000 +0100 +++ new/PadWalker-1.96/META.yml 2012-08-24 14:07:25.000000000 +0200 @@ -1,12 +1,21 @@ -# http://module-build.sourceforge.net/META-spec.html -#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# -name: PadWalker -version: 1.7 -license: perl -version_from: PadWalker.pm -installdirs: site +--- #YAML:1.0 +name: PadWalker +version: 1.96 +abstract: ~ +author: [] +license: unknown +distribution_type: module +configure_requires: + ExtUtils::MakeMaker: 0 +build_requires: + ExtUtils::MakeMaker: 0 requires: - perl: 5.008002 - -distribution_type: module -generated_by: ExtUtils::MakeMaker version 6.21 + perl: 5.008001 +no_index: + directory: + - t + - inc +generated_by: ExtUtils::MakeMaker version 6.57_05 +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: 1.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/Makefile.PL new/PadWalker-1.96/Makefile.PL --- old/PadWalker-1.92/Makefile.PL 2010-07-15 18:20:22.000000000 +0200 +++ new/PadWalker-1.96/Makefile.PL 2012-08-24 14:07:11.000000000 +0200 @@ -1,7 +1,7 @@ use ExtUtils::MakeMaker; use strict; -require 5.008002; +require 5.008001; # Remember (like I didn't) that WriteMakefile looks at @ARGV, # so an alternative way to configure a debugging build is: @@ -33,6 +33,6 @@ 'DEFINE' => $DEBUGGING, 'INC' => '', # e.g., '-I/usr/include/other', ($DEBUGGING ? (CCFLAGS => '-Wall -ansi') : ()), - 'NO_META' => 1, - dist => {TAR => 'env COPYFILE_DISABLE=true tar'} + dist => {TAR => 'env COPYFILE_DISABLE=true tar'}, + MIN_PERL_VERSION => "5.008001", ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/PadWalker.pm new/PadWalker-1.96/PadWalker.pm --- old/PadWalker-1.92/PadWalker.pm 2010-07-15 18:05:16.000000000 +0200 +++ new/PadWalker-1.96/PadWalker.pm 2012-08-24 14:03:24.000000000 +0200 @@ -12,7 +12,7 @@ @EXPORT_OK = qw(peek_my peek_our closed_over peek_sub var_name set_closed_over); %EXPORT_TAGS = (all => \@EXPORT_OK); -$VERSION = '1.92'; +$VERSION = '1.96'; bootstrap PadWalker $VERSION; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/PadWalker.xs new/PadWalker-1.96/PadWalker.xs --- old/PadWalker-1.92/PadWalker.xs 2010-07-15 18:20:49.000000000 +0200 +++ new/PadWalker-1.96/PadWalker.xs 2012-08-24 11:57:19.000000000 +0200 @@ -71,6 +71,25 @@ # define COP_SEQ_RANGE_HIGH(sv) U_32(SvUVX(sv)) #endif +#ifndef PadARRAY +typedef AV PADNAMELIST; +typedef SV PADNAME; +# if PERL_VERSION < 8 || (PERL_VERSION == 8 && !PERL_SUBVERSION) +typedef AV PADLIST; +typedef AV PAD; +# endif +# define PadlistARRAY(pl) ((PAD **)AvARRAY(pl)) +# define PadlistMAX(pl) AvFILLp(pl) +# define PadlistNAMES(pl) (*PadlistARRAY(pl)) +# define PadnamelistARRAY(pnl) ((PADNAME **)AvARRAY(pnl)) +# define PadnamelistMAX(pnl) AvFILLp(pnl) +# define PadARRAY AvARRAY +# define PadnameIsOUR(pn) !!(SvFLAGS(pn) & SVpad_OUR) +# define PadnameOURSTASH(pn) SvOURSTASH(pn) +# define PadnameOUTER(pn) !!SvFAKE(pn) +# define PadnamePV(pn) (SvPOKp(pn) ? SvPVX(pn) : NULL) +#endif + /* Originally stolen from pp_ctl.c; now significantly different */ @@ -181,25 +200,24 @@ } void -pads_into_hash(AV* pad_namelist, AV* pad_vallist, HV* my_hash, HV* our_hash, U32 valid_at_seq) +pads_into_hash(PADNAMELIST* pad_namelist, PAD* pad_vallist, HV* my_hash, + HV* our_hash, U32 valid_at_seq) { I32 i; debug_print(("pads_into_hash(%p, %p, ..)\n", (void*)pad_namelist, (void*) pad_vallist)); - for (i=av_len(pad_namelist); i>=0; --i) { - SV** name_ptr = av_fetch(pad_namelist, i, 0); + for (i=PadnamelistMAX(pad_namelist); i>=0; --i) { + PADNAME* name_sv = PadnamelistARRAY(pad_namelist)[i]; - if (name_ptr) { - SV* name_sv = *name_ptr; - - if (SvPOKp(name_sv)) { - char* name_str = SvPVX(name_sv); + if (name_sv) { + char *name_str = PadnamePV(name_sv); + if (name_str) { debug_print(("** %s (%lx,%lx) [%lx]%s\n", name_str, COP_SEQ_RANGE_LOW(name_sv), COP_SEQ_RANGE_HIGH(name_sv), valid_at_seq, - SvFAKE(name_sv) ? " <fake>" : "")); + PadnameOUTER(name_sv) ? " <fake>" : "")); /* Check that this variable is valid at the cop_seq * specified, by peeking into the NV and IV slots @@ -215,13 +233,13 @@ * them out of the stash directly. */ - if ((SvFAKE(name_sv) || 0 == valid_at_seq || + if ((PadnameOUTER(name_sv) || 0 == valid_at_seq || (valid_at_seq <= COP_SEQ_RANGE_HIGH(name_sv) && valid_at_seq > COP_SEQ_RANGE_LOW(name_sv))) && strlen(name_str) > 1 ) { - SV **val_ptr, *val_sv; + SV *val_sv; U32 name_len = strlen(name_str); bool is_our = ((SvFLAGS(name_sv) & SVpad_OUR) != 0); @@ -235,7 +253,8 @@ } else { if (is_our) { - val_sv = fetch_from_stash(SvOURSTASH(name_sv), name_str, name_len); + val_sv = fetch_from_stash(PadnameOURSTASH(name_sv), + name_str, name_len); if (!val_sv) { debug_print(("Value of our variable is undefined\n")); val_sv = &PL_sv_undef; @@ -243,8 +262,9 @@ } else { - val_ptr = pad_vallist ? av_fetch(pad_vallist, i, 0) : 0; - val_sv = val_ptr ? *val_ptr : &PL_sv_undef; + val_sv = + pad_vallist ? PadARRAY(pad_vallist)[i] : &PL_sv_undef; + if (!val_sv) val_sv = &PL_sv_undef; } hv_store((is_our ? our_hash : my_hash), name_str, name_len, @@ -257,15 +277,17 @@ } void -padlist_into_hash(AV* padlist, HV* my_hash, HV* our_hash, U32 valid_at_seq, long depth) +padlist_into_hash(PADLIST* padlist, HV* my_hash, HV* our_hash, + U32 valid_at_seq, long depth) { - AV *pad_namelist, *pad_vallist; + PADNAMELIST *pad_namelist; + PAD *pad_vallist; if (depth == 0) depth = 1; /* We blindly deref this, cos it's always there (AFAIK!) */ - pad_namelist = (AV*) *av_fetch(padlist, 0, FALSE); - pad_vallist = (AV*) *av_fetch(padlist, depth, FALSE); + pad_namelist = PadlistNAMES(padlist); + pad_vallist = PadlistARRAY(padlist)[depth]; pads_into_hash(pad_namelist, pad_vallist, my_hash, our_hash, valid_at_seq); } @@ -363,30 +385,30 @@ { I32 i; U32 val_depth; - AV *pad_namelist; - AV *pad_vallist; + PADNAMELIST *pad_namelist; + PAD *pad_vallist; if (!CvPADLIST(cv)) { return; } val_depth = CvDEPTH(cv) ? CvDEPTH(cv) : 1; - pad_namelist = (AV*) *av_fetch(CvPADLIST(cv), 0, FALSE); - pad_vallist = (AV*) *av_fetch(CvPADLIST(cv), val_depth, FALSE); + pad_namelist = PadlistNAMES(CvPADLIST(cv)); + pad_vallist = PadlistARRAY(CvPADLIST(cv))[val_depth]; - debug_print(("av_len(CvPADLIST(cv)) = %ld\n", av_len(CvPADLIST(cv)) )); + debug_print(("PadlistMAX(CvPADLIST(cv)) = %ld\n", + PadlistMAX(CvPADLIST(cv)) )); - for (i=av_len(pad_namelist); i>=0; --i) { - SV** name_ptr = av_fetch(pad_namelist, i, 0); + for (i=PadnamelistMAX(pad_namelist); i>=0; --i) { + PADNAME* name_sv = PadnamelistARRAY(pad_namelist)[i]; - if (name_ptr && SvPOKp(*name_ptr)) { - SV* name_sv = *name_ptr; - char* name_str = SvPVX(name_sv); + if (name_sv && PadnamePV(name_sv)) { + char* name_str = PadnamePV(name_sv); STRLEN name_len = strlen(name_str); - if (SvFAKE(name_sv) && 0 == (SvFLAGS(name_sv) & SVpad_OUR)) { - SV **val = av_fetch(pad_vallist, i, 0); - SV *val_sv = val ? *val : &PL_sv_undef; + if (PadnameOUTER(name_sv) && !PadnameIsOUR(name_sv)) { + SV *val_sv = PadARRAY(pad_vallist)[i]; + if (!val_sv) val_sv = &PL_sv_undef; #ifdef PADWALKER_DEBUGGING debug_print(("Found a fake slot: %s\n", name_str)); if (val == 0) @@ -412,18 +434,15 @@ { I32 i; U32 val_depth = CvDEPTH(cv) ? CvDEPTH(cv) : 1; - AV *pad_namelist = (AV*) *av_fetch(CvPADLIST(cv), 0, FALSE); - AV *pad_vallist = (AV*) *av_fetch(CvPADLIST(cv), val_depth, FALSE); + PADNAMELIST *pad_namelist = PadlistNAMES(CvPADLIST(cv)); + PAD *pad_vallist = PadlistARRAY(CvPADLIST(cv))[val_depth]; - for (i=av_len(pad_namelist); i>=0; --i) { - SV** name_ptr = av_fetch(pad_namelist, i, 0); + for (i=PadnamelistMAX(pad_namelist); i>=0; --i) { + PADNAME* name = PadnamelistARRAY(pad_namelist)[i]; + char* name_str; - if (name_ptr && SvPOKp(*name_ptr)) { - SV* name_sv = *name_ptr; - char* name_str = SvPVX(name_sv); - - SV **val = av_fetch(pad_vallist, i, 0); - if (val && (*val == var)) + if ( name && (name_str = PadnamePV(name)) + && PadARRAY(pad_vallist)[i] == var) { return name_str; } } @@ -529,32 +548,30 @@ I32 i; CV *cv = (CV *)SvRV(sv); U32 val_depth = CvDEPTH(cv) ? CvDEPTH(cv) : 1; - AV *pad_namelist = (AV*) *av_fetch(CvPADLIST(cv), 0, FALSE); - AV *pad_vallist = (AV*) *av_fetch(CvPADLIST(cv), val_depth, FALSE); + PADNAMELIST *pad_namelist = PadlistNAMES(CvPADLIST(cv)); + PAD *pad_vallist = PadlistARRAY(CvPADLIST(cv))[val_depth]; CODE: - for (i=av_len(pad_namelist); i>=0; --i) { - SV** name_ptr = av_fetch(pad_namelist, i, 0); + for (i=PadnamelistMAX(pad_namelist); i>=0; --i) { + PADNAME* name = PadnamelistARRAY(pad_namelist)[i]; + char* name_str; - if (name_ptr && SvPOKp(*name_ptr)) { - SV* name_sv = *name_ptr; - char* name_str = SvPVX(name_sv); + if (name && (name_str = PadnamePV(name))) { STRLEN name_len = strlen(name_str); - if (SvFAKE(name_sv) && 0 == (SvFLAGS(name_sv) & SVpad_OUR)) { + if (PadnameOUTER(name) && !PadnameIsOUR(name)) { SV **restore_ref = hv_fetch(pad, name_str, name_len, FALSE); if ( restore_ref ) { if ( SvROK(*restore_ref) ) { SV *restore = SvRV(*restore_ref); - SV **orig = av_fetch(pad_vallist, i, 0); + SV *orig = PadARRAY(pad_vallist)[i]; int restore_type = SvTYPE(restore); - if ( !orig || !*orig || is_correct_type(*orig, restore) ) { + if ( !orig || is_correct_type(orig, restore) ) { SvREFCNT_inc(restore); - if ( av_store(pad_vallist, i, restore) == NULL ) - SvREFCNT_dec(restore); + PadARRAY(pad_vallist)[i] = restore; } else { - croak("Incorrect reftype for variable %s (got %s expected %s)", name_str, sv_reftype(restore, 0), sv_reftype(*orig, 0)); + croak("Incorrect reftype for variable %s (got %s expected %s)", name_str, sv_reftype(restore, 0), sv_reftype(orig, 0)); } } else { croak("The variable for %s is not a reference", name_str); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/README new/PadWalker-1.96/README --- old/PadWalker-1.92/README 2010-07-15 18:23:22.000000000 +0200 +++ new/PadWalker-1.96/README 2012-08-24 14:03:20.000000000 +0200 @@ -1,5 +1,5 @@ ----------------------------------------------------------------------------- -| PadWalker v1.92 - Robin Houston +| PadWalker v1.96 - Robin Houston ----------------------------------------------------------------------------- NAME @@ -106,14 +106,14 @@ AUTHOR Robin Houston <ro...@cpan.org> - With contributions from Richard Soberberg, Florian Ragwitz, Yuval Kogman, and - Fuji, Goro, bug-spotting from Peter Scott and Dave Mitchell, and suggestions - from demerphq. + With contributions from Father Chrysostomous, Richard Soberberg, Florian Ragwitz, + Yuval Kogman, and Fuji, Goro, bug-spotting from Peter Scott and Dave Mitchell, and + suggestions from demerphq. SEE ALSO Devel::LexAlias, Devel::Caller, Sub::Parameters COPYRIGHT - Copyright (c) 2000-2010, Robin Houston. All Rights Reserved. This mod- + Copyright (c) 2000-2012, Robin Houston. All Rights Reserved. This mod- ule is free software. It may be used, redistributed and/or modified under the same terms as Perl itself. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/t/dm.t new/PadWalker-1.96/t/dm.t --- old/PadWalker-1.92/t/dm.t 2005-10-07 18:46:06.000000000 +0200 +++ new/PadWalker-1.96/t/dm.t 2012-06-26 10:52:48.000000000 +0200 @@ -4,7 +4,7 @@ # All these bugs were reported by Dave Mitchell; he's the first # person to get his very own test script. -print "1..7\n"; +print "1..8\n"; # Does PadWalker work if it's called from a closure? sub f { @@ -29,10 +29,15 @@ my $x = my $y = 'fixed'; sub { my $vals = PadWalker::peek_my(0); - my $x_val = ${$vals->{'$x'}}; - my $y_val = ${$vals->{'$y'}}; - print (!defined($x_val) ? "ok 3\n" : "not ok 3 # $x_val\n"); - print ($y_val eq 'fixed' ? "ok 4\n" : "not ok 4 # $y_val\n"); + my $x_ref = $vals->{'$x'}; + my $y_ref = $vals->{'$y'}; + + # There is a difference in behaviour between different versions + # of Perl here. Since a0d2bbd5c47035a4f7369e4fddd46b502764d86e + # we don’t see unclosed variables in the pad at all. + print (!defined($x_ref)||!defined($$x_ref) ? "ok 3\n" : "not ok 3 # $x_ref\n"); + print (defined($y_ref) ? "ok 4\n" : "not ok 4\n"); + print ($$y_ref eq 'fixed' ? "ok 5\n" : "not ok 5 # $$y_ref\n"); my $unused = $y; } } @@ -44,17 +49,17 @@ sub g { my $x = 2; my $v_x = ${PadWalker::peek_my(0)->{'$x'}}; - print ($v_x eq 2 ? "ok 5\n" : "not ok 5 # $v_x\n"); -} + print ($v_x eq 2 ? "ok 6\n" : "not ok 6 # $v_x\n"); +} g(); no warnings 'misc'; # I know it masks an earlier declaration - # that's the whole point! my $x = 'final value'; my $v_x = ${PadWalker::peek_my(0)->{'$x'}}; -print ($v_x eq $x ? "ok 6\n" : "not ok 6 # $v_x\n"); +print ($v_x eq $x ? "ok 7\n" : "not ok 7 # $v_x\n"); # An 'our' variable should mask a 'my': our $x; $x = $x; # Stop old perls from giving 'used only once' warning -print (exists PadWalker::peek_my(0)->{'$x'} ? "not ok 7\n" : "ok 7\n"); +print (exists PadWalker::peek_my(0)->{'$x'} ? "not ok 8\n" : "ok 8\n"); -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org