Revision: 1435
Author:   [email protected]
Date:     Wed Dec 26 07:56:17 2012
Log: Fixed to work with perl v5.17+, specifically string eval changes and hash randomization.

http://code.google.com/p/perl-devel-nytprof/source/detail?r=1435

Modified:
 /trunk/Changes
 /trunk/lib/Devel/NYTProf/Core.pm
 /trunk/lib/Devel/NYTProf/FileInfo.pm
 /trunk/lib/Devel/NYTProf/SubInfo.pm
 /trunk/t/22-readstream.t
 /trunk/t/test10.p
 /trunk/t/test10.rdt
 /trunk/t/test10.x
 /trunk/t/test22-strevala.p
 /trunk/t/test22-strevala.rdt
 /trunk/t/test61-submerge.p
 /trunk/t/test61-submerge.rdt

=======================================
--- /trunk/Changes      Wed Oct 24 02:00:20 2012
+++ /trunk/Changes      Wed Dec 26 07:56:17 2012
@@ -11,6 +11,9 @@

 =head2 Changes in Devel::NYTProf 4.10

+  Fixed to work with perl v5.17+, specifically string eval
+    changes and hash randomization.
+
   Corrected spelling thanks to Alessandro Ghedini @debian RT80370

 =head2 Changes in Devel::NYTProf 4.09 (svn 1431) 15th Sep 2012
=======================================
--- /trunk/lib/Devel/NYTProf/Core.pm    Sun Sep 16 04:31:07 2012
+++ /trunk/lib/Devel/NYTProf/Core.pm    Wed Dec 26 07:56:17 2012
@@ -18,6 +18,9 @@

 XSLoader::load('Devel::NYTProf', $VERSION);

+# Fudging for https://rt.cpan.org/Ticket/Display.html?id=82256
+$Devel::NYTProf::StrEvalTestPad = ($] <= 5.017003) ? ";\n" : "";
+
 if (my $NYTPROF = $ENV{NYTPROF}) {
     for my $optval ( $NYTPROF =~ /((?:[^\\:]+|\\.)+)/g) {
my ($opt, $val) = $optval =~ /^((?:[^\\=]+|\\.)+)=((?:[^\\=]+| \\.)+)\z/;
=======================================
--- /trunk/lib/Devel/NYTProf/FileInfo.pm        Sat Oct  2 14:52:02 2010
+++ /trunk/lib/Devel/NYTProf/FileInfo.pm        Wed Dec 26 07:56:17 2012
@@ -571,7 +571,7 @@

             for my $subname (sort keys %$subs_called) {
                 my @sc = @{$subs_called->{$subname}};
- $sc[NYTP_SCi_CALLING_SUB] = join "|", keys %{ $sc[NYTP_SCi_CALLING_SUB] }; + $sc[NYTP_SCi_CALLING_SUB] = join "|", sort keys %{ $sc[NYTP_SCi_CALLING_SUB] };

                 printf $fh "%s%s%s%s%s%s%s[ %s ]\n",
                     $prefix, 'call', $separator,
=======================================
--- /trunk/lib/Devel/NYTProf/SubInfo.pm Wed Sep 29 13:51:15 2010
+++ /trunk/lib/Devel/NYTProf/SubInfo.pm Wed Dec 26 07:56:17 2012
@@ -393,7 +393,7 @@
     for my $cp (@caller_places) {
         my ($fid, $line, $sc) = @$cp;
         my @sc = @$sc;
- $sc[NYTP_SCi_CALLING_SUB] = join "|", keys %{ $sc[NYTP_SCi_CALLING_SUB] }; + $sc[NYTP_SCi_CALLING_SUB] = join "|", sort keys %{ $sc[NYTP_SCi_CALLING_SUB] };
         printf $fh "%s%s%s%d:%d%s[ %s ]\n",
             $prefix,
             'called_by', $separator,
=======================================
--- /trunk/t/22-readstream.t    Tue Jun  8 15:30:13 2010
+++ /trunk/t/22-readstream.t    Wed Dec 26 07:56:17 2012
@@ -18,7 +18,7 @@
 $ENV{NYTPROF} = "file=$out";
 unlink $out;

-run_perl_command(q{-d:NYTProf -e "sub A { };" -e "1;" -e "A()"});
+run_perl_command(qq{-d:NYTProf -e "sub A { };" -e "1;" -e "A() $Devel::NYTProf::StrEvalTestPad"});

 my %prof;
 my @seqn;
@@ -66,10 +66,11 @@
 cmp_ok $attr{xs_version}, '>=', 2.1, 'xs_version';
 cmp_ok $attr{basetime}, '>=', $^T, 'basetime';

-is_deeply $prof{SUB_INFO}, [
-    [ 1, 1, 1, 'main::A' ],
-    [ 1, 0, 0, 'main::BEGIN' ],
-    [ 1, 1, 1, 'main::RUNTIME' ]
+my @sub_info_sorted = sort { $a->[3] cmp $b->[3] } @{$prof{SUB_INFO}};
+is_deeply \@sub_info_sorted, [
+    [1, 1, 1, "main::A"],
+    [1, 0, 0, "main::BEGIN"],
+    [1, 1, 1, "main::RUNTIME"],
 ];

 $prof{SUB_CALLERS}[0][$_] = 0 for (3,4);
=======================================
--- /trunk/t/test10.p   Sun Jul  5 05:48:56 2009
+++ /trunk/t/test10.p   Wed Dec 26 07:56:17 2012
@@ -1,2 +1,2 @@
-$code = eval 'sub { sleep 1; }';
+$code = eval "sub { sleep 1; }$Devel::NYTProf::StrEvalTestPad";
 $code->();
=======================================
--- /trunk/t/test10.rdt Fri Nov 19 08:25:55 2010
+++ /trunk/t/test10.rdt Wed Dec 26 07:56:17 2012
@@ -16,8 +16,7 @@
 attribute      xs_version      0
 fid_block_time 1       1       [ 0 1 ]
 fid_block_time 1       2       [ 0 1 ]
-fid_block_time 2       1       [ 0 1 ]
-fid_block_time 2       2       [ 0 1 ]
+fid_block_time 2       1       [ 0 2 ]
 fid_fileinfo   1       [ test10.p   1 2 0 0 ]
 fid_fileinfo   1       sub     main::BEGIN     0-0
 fid_fileinfo   1       sub     main::CORE:sleep        0-0
@@ -29,12 +28,10 @@
fid_fileinfo 2 call 1 main::CORE:sleep [ 1 0 0 0 0 0 0 main::__ANON__[(eval 0)[test10.p:1]:1] ]
 fid_line_time  1       1       [ 0 1 ]
 fid_line_time  1       2       [ 0 1 ]
-fid_line_time  2       1       [ 0 1 ]
-fid_line_time  2       2       [ 0 1 ]
+fid_line_time  2       1       [ 0 2 ]
 fid_sub_time   1       1       [ 0 1 ]
 fid_sub_time   1       2       [ 0 1 ]
-fid_sub_time   2       1       [ 0 1 ]
-fid_sub_time   2       2       [ 0 1 ]
+fid_sub_time   2       1       [ 0 2 ]
 profile_modes  fid_block_time  block
 profile_modes  fid_line_time   line
 profile_modes  fid_sub_time    sub
=======================================
--- /trunk/t/test10.x   Sun Jul  5 05:48:56 2009
+++ /trunk/t/test10.x   Wed Dec 26 07:56:17 2012
@@ -1,5 +1,5 @@
 # Profile data generated by Devel::NYTProf::Reader
 # More information at http://search.cpan.org/dist/Devel-NYTProf/
 # Format: time,calls,time/call,code
-~1,1,0,$code = eval 'sub { sleep 1; }';
+~1,1,0,$code = eval "sub { sleep 1; }$Devel::NYTProf::StrEvalTestPad";
 0,1,0,$code->();
=======================================
--- /trunk/t/test22-strevala.p  Wed Jan 21 07:23:08 2009
+++ /trunk/t/test22-strevala.p  Wed Dec 26 07:56:17 2012
@@ -1,6 +1,6 @@
 # test merging of anon subs from evals

-my $code = 'sub { print "sub called\n" }';
+my $code = qq{ sub { print "sub called\n" } $Devel::NYTProf::StrEvalTestPad};

 # call once from particular line
 eval($code)->();
=======================================
--- /trunk/t/test22-strevala.rdt        Fri Nov 19 08:25:55 2010
+++ /trunk/t/test22-strevala.rdt        Wed Dec 26 07:56:17 2012
@@ -29,23 +29,23 @@
 fid_fileinfo   1       sub     main::BEGIN     0-0
 fid_fileinfo   1       sub     main::CORE:print        0-0
 fid_fileinfo   1       sub     main::RUNTIME   1-1
-fid_fileinfo 1 call 6 main::__ANON__[(eval 1)[test22-strevala.p:6]:1] [ 1 0 0 0 0 0 0 main::RUNTIME ] -fid_fileinfo 1 call 9 main::__ANON__[(eval 2)[test22-strevala.p:9]:1] [ 2 0 0 0 0 0 0 main::RUNTIME ] +fid_fileinfo 1 call 6 main::__ANON__[(eval 1)[test22-strevala.p:6]:2] [ 1 0 0 0 0 0 0 main::RUNTIME ] +fid_fileinfo 1 call 9 main::__ANON__[(eval 2)[test22-strevala.p:9]:2] [ 2 0 0 0 0 0 0 main::RUNTIME ]
 fid_fileinfo   1       eval    6       [ count 1 nested 0 merged 0 ]
 fid_fileinfo   1       eval    9       [ count 1 nested 0 merged 1 ]
 fid_fileinfo   1       eval    12      [ count 1 nested 1 merged 0 ]
 fid_fileinfo   2       [ (eval 1)[test22-strevala.p:6] 1 6 2 2 0 0 ]
-fid_fileinfo   2       sub     main::__ANON__[(eval 1)[test22-strevala.p:6]:1] 
1-1
-fid_fileinfo 2 call 1 main::CORE:print [ 1 0 0 0 0 0 0 main::__ANON__[(eval 1)[test22-strevala.p:6]:1] ]
+fid_fileinfo   2       sub     main::__ANON__[(eval 1)[test22-strevala.p:6]:2] 
1-2
+fid_fileinfo 2 call 1 main::CORE:print [ 1 0 0 0 0 0 0 main::__ANON__[(eval 1)[test22-strevala.p:6]:2] ]
 fid_fileinfo   3       [ (eval 2)[test22-strevala.p:9] 1 9 3 2 0 0 ]
-fid_fileinfo   3       sub     main::__ANON__[(eval 2)[test22-strevala.p:9]:1] 
1-1
-fid_fileinfo 3 call 1 main::CORE:print [ 2 0 0 0 0 0 0 main::__ANON__[(eval 2)[test22-strevala.p:9]:1]|main::__ANON__[(eval 3)[test22-strevala.p:9]:1] ]
+fid_fileinfo   3       sub     main::__ANON__[(eval 2)[test22-strevala.p:9]:2] 
1-2
+fid_fileinfo 3 call 1 main::CORE:print [ 2 0 0 0 0 0 0 main::__ANON__[(eval 2)[test22-strevala.p:9]:2]|main::__ANON__[(eval 3)[test22-strevala.p:9]:2] ]
 fid_fileinfo   5       [ (eval 4)[test22-strevala.p:12] 1 12 5 2 0 0 ]
-fid_fileinfo 5 call 2 main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:1] [ 2 0 0 0 0 0 0 main::RUNTIME ] +fid_fileinfo 5 call 2 main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:2] [ 2 0 0 0 0 0 0 main::RUNTIME ]
 fid_fileinfo   5       eval    2       [ count 1 nested 0 merged 1 ]
 fid_fileinfo   6       [ (eval 5)[(eval 4)[test22-strevala.p:12]:2] 5 2 6 2 0 
0 ]
-fid_fileinfo 6 sub main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:1] 1-1 -fid_fileinfo 6 call 1 main::CORE:print [ 2 0 0 0 0 0 0 main::__ANON__[(eval 6)[(eval 4)[test22-strevala.p:12]:2]:1]| main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:1] ] +fid_fileinfo 6 sub main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:2] 1-2 +fid_fileinfo 6 call 1 main::CORE:print [ 2 0 0 0 0 0 0 main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:2]| main::__ANON__[(eval 6)[(eval 4)[test22-strevala.p:12]:2]:2] ]
 fid_line_time  1       3       [ 0 1 ]
 fid_line_time  1       6       [ 0 1 ]
 fid_line_time  1       9       [ 0 2 ]
@@ -73,15 +73,15 @@
 profile_modes  fid_sub_time    sub
 sub_subinfo    main::BEGIN     [ 1:0-0 calls 0 times 0 0 0 0 ]
 sub_subinfo    main::CORE:print        [ 1:0-0 calls 5 times 0 0 0 0 ]
-sub_subinfo main::CORE:print called_by 2:1 [ 1 0 0 0 0 0 0 main::__ANON__[(eval 1)[test22-strevala.p:6]:1] ] -sub_subinfo main::CORE:print called_by 3:1 [ 2 0 0 0 0 0 0 main::__ANON__[(eval 2)[test22-strevala.p:9]:1]|main::__ANON__[(eval 3)[test22-strevala.p:9]:1] ] -sub_subinfo main::CORE:print called_by 6:1 [ 2 0 0 0 0 0 0 main::__ANON__[(eval 6)[(eval 4)[test22-strevala.p:12]:2]:1]| main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:1] ] +sub_subinfo main::CORE:print called_by 2:1 [ 1 0 0 0 0 0 0 main::__ANON__[(eval 1)[test22-strevala.p:6]:2] ] +sub_subinfo main::CORE:print called_by 3:1 [ 2 0 0 0 0 0 0 main::__ANON__[(eval 2)[test22-strevala.p:9]:2]|main::__ANON__[(eval 3)[test22-strevala.p:9]:2] ] +sub_subinfo main::CORE:print called_by 6:1 [ 2 0 0 0 0 0 0 main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:2]| main::__ANON__[(eval 6)[(eval 4)[test22-strevala.p:12]:2]:2] ]
 sub_subinfo    main::RUNTIME   [ 1:1-1 calls 0 times 0 0 0 0 ]
-sub_subinfo main::__ANON__[(eval 1)[test22-strevala.p:6]:1] [ 2:1-1 calls 1 times 0 0 0 0 ] -sub_subinfo main::__ANON__[(eval 1)[test22-strevala.p:6]:1] called_by 1:6 [ 1 0 0 0 0 0 0 main::RUNTIME ] -sub_subinfo main::__ANON__[(eval 2)[test22-strevala.p:9]:1] [ 3:1-1 calls 2 times 0 0 0 0 ] -sub_subinfo main::__ANON__[(eval 2)[test22-strevala.p:9]:1] called_by 1:9 [ 2 0 0 0 0 0 0 main::RUNTIME ] -sub_subinfo main::__ANON__[(eval 2)[test22-strevala.p:9]:1] merge_donor main::__ANON__[(eval 3)[test22-strevala.p:9]:1] -sub_subinfo main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:1] [ 6:1-1 calls 2 times 0 0 0 0 ] -sub_subinfo main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:1] called_by 5:2 [ 2 0 0 0 0 0 0 main::RUNTIME ] -sub_subinfo main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:1] merge_donor main::__ANON__[(eval 6)[(eval 4)[test22-strevala.p:12]:2]:1] +sub_subinfo main::__ANON__[(eval 1)[test22-strevala.p:6]:2] [ 2:1-2 calls 1 times 0 0 0 0 ] +sub_subinfo main::__ANON__[(eval 1)[test22-strevala.p:6]:2] called_by 1:6 [ 1 0 0 0 0 0 0 main::RUNTIME ] +sub_subinfo main::__ANON__[(eval 2)[test22-strevala.p:9]:2] [ 3:1-2 calls 2 times 0 0 0 0 ] +sub_subinfo main::__ANON__[(eval 2)[test22-strevala.p:9]:2] called_by 1:9 [ 2 0 0 0 0 0 0 main::RUNTIME ] +sub_subinfo main::__ANON__[(eval 2)[test22-strevala.p:9]:2] merge_donor main::__ANON__[(eval 3)[test22-strevala.p:9]:2] +sub_subinfo main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:2] [ 6:1-2 calls 2 times 0 0 0 0 ] +sub_subinfo main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:2] called_by 5:2 [ 2 0 0 0 0 0 0 main::RUNTIME ] +sub_subinfo main::__ANON__[(eval 5)[(eval 4)[test22-strevala.p:12]:2]:2] merge_donor main::__ANON__[(eval 6)[(eval 4)[test22-strevala.p:12]:2]:2]
=======================================
--- /trunk/t/test61-submerge.p  Mon Sep 13 14:00:20 2010
+++ /trunk/t/test61-submerge.p  Wed Dec 26 07:56:17 2012
@@ -3,6 +3,6 @@

 sub foo { print "foo @_\n" }

-my $code = 'sub { foo() }';
+my $code = qq{ sub { foo() } $Devel::NYTProf::StrEvalTestPad};

 eval($code)->(); eval($code)->(); eval($code)->();
=======================================
--- /trunk/t/test61-submerge.rdt        Fri Nov 19 08:25:55 2010
+++ /trunk/t/test61-submerge.rdt        Wed Dec 26 07:56:17 2012
@@ -17,8 +17,7 @@
 fid_block_time 1       4       [ 0 3 ]
 fid_block_time 1       6       [ 0 1 ]
 fid_block_time 1       8       [ 0 3 ]
-fid_block_time 2       1       [ 0 1 ]
-fid_block_time 2       2       [ 0 1 ]
+fid_block_time 2       1       [ 0 2 ]
 fid_fileinfo   1       [ test61-submerge.p   1 2 0 0 ]
 fid_fileinfo   1       sub     main::BEGIN     0-0
 fid_fileinfo   1       sub     main::CORE:print        0-0
@@ -29,17 +28,15 @@
 fid_fileinfo   1       eval    8       [ count 1 nested 0 merged 2 ]
 fid_fileinfo   2       [ (eval 1)[test61-submerge.p:8] 1 8 2 2 0 0 ]
 fid_fileinfo   2       sub     main::__ANON__[(eval 1)[test61-submerge.p:8]:1] 
1-1
-fid_fileinfo 2 call 1 main::foo [ 3 0 0 0 0 0 0 main::__ANON__[(eval 2)[test61-submerge.p:8]:1]|main::__ANON__[(eval 1)[test61-submerge.p:8]:1]| main::__ANON__[(eval 3)[test61-submerge.p:8]:1] ] +fid_fileinfo 2 call 1 main::foo [ 3 0 0 0 0 0 0 main::__ANON__[(eval 1)[test61-submerge.p:8]:1]|main::__ANON__[(eval 2)[test61-submerge.p:8]:1]| main::__ANON__[(eval 3)[test61-submerge.p:8]:1] ]
 fid_line_time  1       4       [ 0 3 ]
 fid_line_time  1       6       [ 0 1 ]
 fid_line_time  1       8       [ 0 3 ]
-fid_line_time  2       1       [ 0 3 ]
-fid_line_time  2       2       [ 0 3 ]
+fid_line_time  2       1       [ 0 6 ]
 fid_sub_time   1       4       [ 0 3 ]
 fid_sub_time   1       6       [ 0 1 ]
 fid_sub_time   1       8       [ 0 3 ]
-fid_sub_time   2       1       [ 0 1 ]
-fid_sub_time   2       2       [ 0 1 ]
+fid_sub_time   2       1       [ 0 2 ]
 profile_modes  fid_block_time  block
 profile_modes  fid_line_time   line
 profile_modes  fid_sub_time    sub
@@ -52,4 +49,4 @@
sub_subinfo main::__ANON__[(eval 1)[test61-submerge.p:8]:1] merge_donor main::__ANON__[(eval 2)[test61-submerge.p:8]:1] sub_subinfo main::__ANON__[(eval 1)[test61-submerge.p:8]:1] merge_donor main::__ANON__[(eval 3)[test61-submerge.p:8]:1]
 sub_subinfo    main::foo       [ 1:4-4 calls 3 times 0 0 0 0 ]
-sub_subinfo main::foo called_by 2:1 [ 3 0 0 0 0 0 0 main::__ANON__[(eval 2)[test61-submerge.p:8]:1]|main::__ANON__[(eval 1)[test61-submerge.p:8]:1]| main::__ANON__[(eval 3)[test61-submerge.p:8]:1] ] +sub_subinfo main::foo called_by 2:1 [ 3 0 0 0 0 0 0 main::__ANON__[(eval 1)[test61-submerge.p:8]:1]|main::__ANON__[(eval 2)[test61-submerge.p:8]:1]| main::__ANON__[(eval 3)[test61-submerge.p:8]:1] ]

--
You've received this message because you are subscribed to
the Devel::NYTProf Development User group.

Group hosted at:  http://groups.google.com/group/develnytprof-dev
Project hosted at:  http://perl-devel-nytprof.googlecode.com
CPAN distribution:  http://search.cpan.org/dist/Devel-NYTProf

To post, email:  [email protected]
To unsubscribe, email:  [email protected]

Reply via email to