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

Reply via email to