Change 32651 by [EMAIL PROTECTED] on 2007/12/19 15:00:53

        Upgrade to B-Lint-1.11

Affected files ...

... //depot/perl/MANIFEST#1647 edit
... //depot/perl/ext/B/B/Lint.pm#26 edit
... //depot/perl/ext/B/B/Lint/Debug.pm#1 add

Differences ...

==== //depot/perl/MANIFEST#1647 (text) ====
Index: perl/MANIFEST
--- perl/MANIFEST#1646~32650~   2007-12-19 06:30:46.000000000 -0800
+++ perl/MANIFEST       2007-12-19 07:00:53.000000000 -0800
@@ -76,6 +76,7 @@
 ext/B/B/Debug.pm       Compiler Debug backend
 ext/B/B/Deparse.pm     Compiler Deparse backend
 ext/B/B/Lint.pm                Compiler Lint backend
+ext/B/B/Lint/Debug.pm  Adds debugging stringification to B::
 ext/B/B.pm             Compiler backend support functions and methods
 ext/B/B/Showlex.pm     Compiler Showlex backend
 ext/B/B/Terse.pm       Compiler Terse backend

==== //depot/perl/ext/B/B/Lint.pm#26 (text) ====
Index: perl/ext/B/B/Lint.pm
--- perl/ext/B/B/Lint.pm#25~31294~      2007-05-28 06:36:43.000000000 -0700
+++ perl/ext/B/B/Lint.pm        2007-12-19 07:00:53.000000000 -0800
@@ -1,6 +1,6 @@
 package B::Lint;
 
-our $VERSION = '1.09';    ## no critic
+our $VERSION = '1.11';    ## no critic
 
 =head1 NAME
 
@@ -185,6 +185,10 @@
 
 Malcolm Beattie, [EMAIL PROTECTED]
 
+=head1 ACKNOWLEDGEMENTS
+
+Sebastien Aperghis-Tramoni - bug fixes
+
 =cut
 
 use strict;
@@ -347,8 +351,8 @@
         my @elts       = map +( $_->ARRAY )[$ix], @entire_pad;
         ($elt) = first {
             eval { $_->isa('B::SV') } ? $_ : ();
-            }
-            @elts[ 0, reverse 1 .. $#elts ];
+        }
+        @elts[ 0, reverse 1 .. $#elts ];
         return $elt;
     };
 }
@@ -511,7 +515,7 @@
 # scratchpad to find things. I suppose this is so a optree can be
 # shared between threads and all symbol table muckery will just get
 # written to a scratchpad.
-*B::PADOP::lint = \&B::SVOP::lint;
+*B::PADOP::lint = *B::PADOP::lint = \&B::SVOP::lint;
 
 sub B::SVOP::lint {
     my ($op) = @_;

==== //depot/perl/ext/B/B/Lint/Debug.pm#1 (text) ====
Index: perl/ext/B/B/Lint/Debug.pm
--- /dev/null   2007-12-15 13:29:14.653686300 -0800
+++ perl/ext/B/B/Lint/Debug.pm  2007-12-19 07:00:53.000000000 -0800
@@ -0,0 +1,65 @@
+package B::Lint::Debug;
+
+=head1 NAME
+
+B::Lint::Debug - Adds debugging stringification to B::
+
+=head1 DESCRIPTION
+
+This module injects stringification to a B::OP*/B::SPECIAL. This
+should not be loaded unless you're debugging.
+
+=cut
+
+package B::SPECIAL;
+use overload '""' => sub {
+    my $self = shift @_;
+    "SPECIAL($$self)";
+};
+
+package B::OP;
+use overload '""' => sub {
+    my $self  = shift @_;
+    my $class = ref $self;
+    $class =~ s/\AB:://xms;
+    my $name = $self->name;
+    "$class($name)";
+};
+
+package B::SVOP;
+use overload '""' => sub {
+    my $self  = shift @_;
+    my $class = ref $self;
+    $class =~ s/\AB:://xms;
+    my $name = $self->name;
+    "$class($name," . $self->sv . "," . $self->gv . ")";
+};
+
+package B::SPECIAL;
+sub DESTROY { }
+our $AUTOLOAD;
+
+sub AUTOLOAD {
+    my $cx = 0;
+    print "AUTOLOAD $AUTOLOAD\n";
+
+    package DB;
+    while ( my @stuff = caller $cx ) {
+
+        print "$cx: [EMAIL PROTECTED]::args] [EMAIL PROTECTED]";
+        if ( ref $DB::args[0] ) {
+            if ( $DB::args[0]->can('padix') ) {
+                print "    PADIX: " . $DB::args[0]->padix . "\n";
+            }
+            if ( $DB::args[0]->can('targ') ) {
+                print "    TARG: " . $DB::args[0]->targ . "\n";
+                for ( B::Lint::cv()->PADLIST->ARRAY ) {
+                    print +( $_->ARRAY )[ $DB::args[0]->targ ] . "\n";
+                }
+            }
+        }
+        ++$cx;
+    }
+}
+
+1;
End of Patch.

Reply via email to