Hello community,

here is the log from the commit of package perl-Devel-Caller for 
openSUSE:Factory checked in at 2013-06-09 16:40:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Devel-Caller (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Devel-Caller.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Devel-Caller"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Devel-Caller/perl-Devel-Caller.changes      
2011-12-21 14:58:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Devel-Caller.new/perl-Devel-Caller.changes 
2013-06-09 16:40:06.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Jun  4 08:17:41 UTC 2013 - [email protected]
+
+- updated to 2.06
+      Corrected some pod syntax RT#56456
+      Handle the new padrange op added in 5.17 RT#81704
+
+-------------------------------------------------------------------

Old:
----
  Devel-Caller-2.05.tar.gz

New:
----
  Devel-Caller-2.06.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Devel-Caller.spec ++++++
--- /var/tmp/diff_new_pack.1Ca351/_old  2013-06-09 16:40:07.000000000 +0200
+++ /var/tmp/diff_new_pack.1Ca351/_new  2013-06-09 16:40:07.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Devel-Caller
 #
-# Copyright (c) 2011 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,12 +15,13 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
+
 Name:           perl-Devel-Caller
-Version:        2.05
+Version:        2.06
 Release:        0
 %define cpan_name Devel-Caller
 Summary:        meatier versions of C<caller>
-License:        GPL-1.0+ or Artistic-1.0
+License:        Artistic-1.0 or GPL-1.0+
 Group:          Development/Libraries/Perl
 Url:            http://search.cpan.org/dist/Devel-Caller/
 Source:         
http://www.cpan.org/authors/id/R/RC/RCLAMP/%{cpan_name}-%{version}.tar.gz

++++++ Devel-Caller-2.05.tar.gz -> Devel-Caller-2.06.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Caller-2.05/Changes 
new/Devel-Caller-2.06/Changes
--- old/Devel-Caller-2.05/Changes       2010-04-08 14:39:24.000000000 +0200
+++ new/Devel-Caller-2.06/Changes       2013-01-16 11:27:17.000000000 +0100
@@ -1,3 +1,7 @@
+2.06 Wednesday 16th January, 2013
+       Corrected some pod syntax RT#56456
+       Handle the new padrange op added in 5.17 RT#81704
+
 2.05 Thursday 8th April, 2010
        Don't call B::PADOP->gv.  Work by by Florian Ragwitz
        
http://github.com/rafl/perl-devel-caller/commit/248a23390eef48a73bb717be085da58ce50ff784
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Caller-2.05/MANIFEST 
new/Devel-Caller-2.06/MANIFEST
--- old/Devel-Caller-2.05/MANIFEST      2010-04-08 14:42:05.000000000 +0200
+++ new/Devel-Caller-2.06/MANIFEST      2013-01-16 11:17:15.000000000 +0100
@@ -1,7 +1,8 @@
+META.yml
+META.json
 MANIFEST
 Changes
 Makefile.PL
 lib/Devel/Caller.pm
 Caller.xs
 t/Devel-Caller.t
-META.yml                                 Module meta-data (added by MakeMaker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Caller-2.05/META.json 
new/Devel-Caller-2.06/META.json
--- old/Devel-Caller-2.05/META.json     1970-01-01 01:00:00.000000000 +0100
+++ new/Devel-Caller-2.06/META.json     2013-01-16 11:27:56.000000000 +0100
@@ -0,0 +1,42 @@
+{
+   "abstract" : "meatier versions of C<caller>",
+   "author" : [
+      "Richard Clamp <[email protected]>"
+   ],
+   "dynamic_config" : 1,
+   "generated_by" : "ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter 
version 2.120921",
+   "license" : [
+      "perl_5"
+   ],
+   "meta-spec" : {
+      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec";,
+      "version" : "2"
+   },
+   "name" : "Devel-Caller",
+   "no_index" : {
+      "directory" : [
+         "t",
+         "inc"
+      ]
+   },
+   "prereqs" : {
+      "build" : {
+         "requires" : {
+            "ExtUtils::MakeMaker" : "0"
+         }
+      },
+      "configure" : {
+         "requires" : {
+            "ExtUtils::MakeMaker" : "0"
+         }
+      },
+      "runtime" : {
+         "requires" : {
+            "PadWalker" : "0.08",
+            "Test::More" : "0"
+         }
+      }
+   },
+   "release_status" : "stable",
+   "version" : "2.06"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Caller-2.05/META.yml 
new/Devel-Caller-2.06/META.yml
--- old/Devel-Caller-2.05/META.yml      2010-04-08 14:42:05.000000000 +0200
+++ new/Devel-Caller-2.06/META.yml      2013-01-16 11:27:56.000000000 +0100
@@ -1,20 +1,23 @@
---- #YAML:1.0
-name:               Devel-Caller
-version:            2.05
-abstract:           ~
-author:  []
-license:            unknown
-distribution_type:  module
+---
+abstract: 'meatier versions of C<caller>'
+author:
+  - 'Richard Clamp <[email protected]>'
+build_requires:
+  ExtUtils::MakeMaker: 0
 configure_requires:
-    ExtUtils::MakeMaker:  0
-requires:
-    PadWalker:   0.08
-    Test::More:  0
-no_index:
-    directory:
-        - t
-        - inc
-generated_by:       ExtUtils::MakeMaker version 6.48
+  ExtUtils::MakeMaker: 0
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 
2.120921'
+license: perl
 meta-spec:
-    url:      http://module-build.sourceforge.net/META-spec-v1.4.html
-    version:  1.4
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html
+  version: 1.4
+name: Devel-Caller
+no_index:
+  directory:
+    - t
+    - inc
+requires:
+  PadWalker: 0.08
+  Test::More: 0
+version: 2.06
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Caller-2.05/Makefile.PL 
new/Devel-Caller-2.06/Makefile.PL
--- old/Devel-Caller-2.05/Makefile.PL   2008-12-12 12:42:35.000000000 +0100
+++ new/Devel-Caller-2.06/Makefile.PL   2013-01-16 11:04:37.000000000 +0100
@@ -3,9 +3,12 @@
 use warnings;
 use ExtUtils::MakeMaker;
 WriteMakefile(
-    'NAME'         => 'Devel::Caller',
-    'VERSION_FROM' => 'lib/Devel/Caller.pm',
-    'PREREQ_PM'    => {
+    NAME          => 'Devel::Caller',
+    AUTHOR        => 'Richard Clamp <[email protected]>',
+    LICENSE       => 'perl',
+    VERSION_FROM  => 'lib/Devel/Caller.pm',
+    ABSTRACT_FROM => 'lib/Devel/Caller.pm',
+    PREREQ_PM     => {
         'Test::More' => 0,
         'PadWalker'  => '0.08'
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Caller-2.05/lib/Devel/Caller.pm 
new/Devel-Caller-2.06/lib/Devel/Caller.pm
--- old/Devel-Caller-2.05/lib/Devel/Caller.pm   2010-04-08 14:39:39.000000000 
+0200
+++ new/Devel-Caller-2.06/lib/Devel/Caller.pm   2013-01-16 11:27:17.000000000 
+0100
@@ -1,13 +1,13 @@
 use strict;
 package Devel::Caller;
 use warnings;
-use B;
+use B qw( peekop );
 use PadWalker ();
 use XSLoader;
 use base qw( Exporter  );
 use 5.008;
 
-our $VERSION = '2.05';
+our $VERSION = '2.06';
 XSLoader::load __PACKAGE__, $VERSION;
 
 our @EXPORT_OK = qw( caller_cv caller_args caller_vars called_with 
called_as_method );
@@ -21,20 +21,23 @@
 
 our $DEBUG = 0;
 
+# scan forward through the ops noting the pushmark or a padrange ops.
+# These indicate the start of a subroutine call.  We're looking for the most
+# recent one before the subroutine invocation (the entersub).
 sub scan_forward {
     my $op = shift;
-    die "was expecting a pushmark, not a " . $op->name
-      if ($op->name ne "pushmark");
+    die "was expecting a pushmark or a padrange, not a " . $op->name
+      if ($op->name !~ /^(?:pushmark|padrange)$/);
 
     my @stack;
     for (; $op && $op->name ne 'entersub'; $op = $op->next) {
-        print "SCAN op $op ", $op->name, "\n" if $DEBUG;
-        if ($op->name eq "pushmark") {
-            print "push $op\n" if $DEBUG;
+        print "SCAN ", peekop($op), "\n" if $DEBUG;
+        if ($op->name eq "pushmark" or $op->name eq "padrange") {
+            print "   PUSH\n" if $DEBUG;
             push @stack, $op;
         }
         elsif (0) { # op consumes a mark
-            print "pop\n" if $DEBUG;
+            print "   POP\n" if $DEBUG;
             pop @stack;
         }
     }
@@ -52,42 +55,52 @@
     my $padn = $pad->ARRAYelt( 0 );
     my $padv = $pad->ARRAYelt( 1 );
 
-    print $op->name, "\n" if $DEBUG;
+    print "Context OP: ", peekop($op), "\n" if $DEBUG;
     $op = scan_forward( $op );
-    print $op->name, "\n" if $DEBUG;
+    print "Scanned forward to ", peekop($op), "\n" if $DEBUG;
 
     my @return;
-    my ($prev, $skip);
-    $skip = 0;
-    while (($prev = $op) && ($op = $op->next) && ($op->name ne "entersub")) {
-        print "op $op ", $op->name, "\n" if $DEBUG;
-        if ($op->name eq "pushmark") {
-            $skip = !$skip;
-        }
-        elsif ($op->name =~ "pad(sv|av|hv)") {
-            next if $skip;
-            print "PAD skip:$skip\n" if $DEBUG;
+    my $prev;
 
+    # We're scanning through looking for ops which are pushing
+    # variables onto the stack (/pad(sv|av|hv)/ push from the pad, 
+    # /gvsv|rv2([ahg]v/ are from globs.
+    for (; $op && $op->name ne 'entersub'; ($prev = $op) && ($op = $op->next)) 
{
+        printf "Loop: %s %s targ: %d\n", peekop($op), $op->name, $op->targ if 
$DEBUG;
+
+        if ($op->name eq "padrange") {
+            # A padrange is a 5.17 optimisation that uses a single op to
+            # load multiple pad variables onto the stack.  The old ops
+            # are preserved and are reachable as the padrange's sibling
+            # so that B::Deparse can pessimise it back to that state.
+            #
+            # http://perl5.git.perl.org/perl.git/commitdiff/0fe870f5
+            # http://perl5.git.perl.org/perl.git/commitdiff/a7fd8ef6
+            #
+            # We could use the B::Deparse method, but it's probably simpler if
+            # we just reassign $op.
+            print "padrange, diverting down ", $prev->sibling, "\n" if $DEBUG;
+            $op = $op->sibling;
+        }
+
+        if ($op->name =~ "pad(sv|av|hv)") {
             if ($op->next->next->name eq "sassign") {
-                $skip = 0;
+                print "sassign in two ops, this is the target skipping\n" if 
$DEBUG;
                 next;
             }
 
-            print "targ: ", $op->targ, "\n" if $DEBUG;
-            my $name  = $padn->ARRAYelt( $op->targ )->PVX;
-            my $value = $padv->ARRAYelt( $op->targ )->object_2svref;
-            push @return, $want_names ? $name : $value;
-            next;
-        }
-        elsif ($op->name eq "gv") {
+            print "Copying from pad\n" if $DEBUG;
+            if ($want_names) {
+                push @return, $padn->ARRAYelt( $op->targ )->PVX;
+            }
+            else {
+                push @return, $padv->ARRAYelt( $op->targ )->object_2svref;
+            }
             next;
         }
         elsif ($op->name =~ /gvsv|rv2(av|hv|gv)/) {
-            print "GV skip:$skip\n" if $DEBUG;
-
             if ($op->next->next->name eq "sassign") {
-                $skip = 0;
-                print "skipped\n" if $DEBUG;
+                print "sassign in two ops, this is the target, skipping\n" if 
$DEBUG;
                 next;
             }
 
@@ -129,9 +142,8 @@
             next;
         }
         elsif ($op->name eq "const") {
-            print "const $op skip:$skip\n" if $DEBUG;
             if ($op->next->next->name eq "sassign") {
-                $skip = 0;
+                print "sassign in two ops, this is the target, skipping\n" if 
$DEBUG;
                 next;
             }
 
@@ -148,7 +160,7 @@
     my $op = _context_op( PadWalker::_upcontext( $level + 1 ));
 
     print "called_as_method: $op\n" if $DEBUG;
-    die "was expecting a pushmark, not a ". $op->name
+    die "was expecting a pushmark or pad, not a ". $op->name
       unless $op->name eq "pushmark";
     while (($op = $op->next) && ($op->name ne "entersub")) {
         print "method: ", $op->name, "\n" if $DEBUG;
@@ -210,6 +222,7 @@
 C<called_as_method> returns true if the subroutine at $level was
 called as a method.
 
+=back
 
 =head1 BUGS
 
@@ -240,10 +253,10 @@
 
 =head1 COPYRIGHT
 
-Copyright (c) 2002, 2003, 2006, 2007, 2008, 2010 Richard Clamp. All Rights
-Reserved.
+Copyright (c) 2002, 2003, 2006, 2007, 2008, 2010, 2013 Richard Clamp.
+All Rights Reserved.
+
 This module is free software. It may be used, redistributed and/or
 modified under the same terms as Perl itself.
 
 =cut
-

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to