rurban / b-stats Goto Github PK
View Code? Open in Web Editor NEWprint optree statistics
Home Page: http://search.cpan.org/dist/B-Stats
License: Other
print optree statistics
Home Page: http://search.cpan.org/dist/B-Stats
License: Other
Given
#!/usr/bin/perl -w
use Data::Dumper;
my %slim;
print Dumper(\%slim);
and run as "perl -MB::Stats=-r C:\sources\t4.pl" I get
C:\sources\B-Stats>perl -MB::Stats=-r C:\sources\t4.pl
$VAR1 = {};
Use of uninitialized value $class in hash element at C:/perl521/site/lib/B/Stats
.pm line 366.
Use of uninitialized value $class in hash element at C:/perl521/site/lib/B/Stats
.pm line 366.
B::Stats dynamic run-time:
files=17 lines=7427 ops=142
op name:
const 35
gvsv 20
nextstate 12
padsv 10
pushmark 10
and 5
entersub 4
or 4
padrange 3
sassign 3
ref 3
gv 3
anonlist 2
aassign 2
anonhash 2
helem 2
defined 2
leavesub 2
rv2hv 2
aelemfast 2
enter 2
leave 2
return 1
bless 1
padhv 1
seq 1
refgen 1
gt 1
method_named 1
rv2av 1
method 1
print 1
op class:
SVOP 61
OP 29
COP 12
UNOP 11
LISTOP 9
LOGOP 9
BINOP 6
5
C:\sources\B-Stats>
Line 366 is
sub output_runtime {
$r_count = {};
my $r_countarr = $_[0];
require Opcodes;
my $maxo = Opcodes::opcodes();
# @optype only since 5.8.9 in B
my @optype = qw(OP UNOP BINOP LOGOP LISTOP PMOP SVOP PADOP PVOP LOOP COP);
for my $i (0..$maxo-1) {
if (my $count = $r_countarr->[$i]) {
my $name = Opcodes::opname($i);
if ($name) {
my $class = $optype[ Opcodes::opclass($i) ];
next if $opt{f} and !$opt{f}->{name}->{$name};
next if $opt{f} and !$opt{f}->{class}->{$class};
$r_count->{name}->{ $name } += $count;
$rops += $count;
$r_count->{class}->{ $class } += $count;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
} else {
warn "invalid name for opcount[$i]";
}
}
}
output($r_count, $rops, 'dynamic run-time');
}
adding " warn Opcodes::opclass($i) if ! defined $class;" to the code says Opcodes::opclass($i) is returning 11.
@optype only goes upto index 10 ("COP").
If I am reading op.h correctly
#define OA_BASEOP (0 << OCSHIFT)
#define OA_UNOP (1 << OCSHIFT)
#define OA_BINOP (2 << OCSHIFT)
#define OA_LOGOP (3 << OCSHIFT)
#define OA_LISTOP (4 << OCSHIFT)
#define OA_PMOP (5 << OCSHIFT)
#define OA_SVOP (6 << OCSHIFT)
#define OA_PADOP (7 << OCSHIFT)
#define OA_PVOP_OR_SVOP (8 << OCSHIFT)
#define OA_LOOP (9 << OCSHIFT)
#define OA_COP (10 << OCSHIFT)
#define OA_BASEOP_OR_UNOP (11 << OCSHIFT)
#define OA_FILESTATOP (12 << OCSHIFT)
#define OA_LOOPEXOP (13 << OCSHIFT)
There are 3 missing op classes from B::Stats.
C:\sources\B-Stats>perl -MB::Stats-r Makefile.pl
B::Stats static compile-time:
files=1 lines=339 ops=54652
op name:
null 8802
padsv 6894
const 5796
nextstate 4824
pushmark 2744
padrange 1729
concat 1655
helem 1477
rv2hv 1462
sassign 1421
gv 1391
entersub 1108
and 1098
lineseq 895
padav 774
gvsv 684
enter 672
leave 671
aassign 646
or 641
rv2av 575
scope 545
leavesub 535
method_named 533
cond_expr 521
return 519
padhv 357
match 303
push 254
seq 227
leaveloop 217
shift 214
unstack 208
subst 201
defined 198
enteriter 169
iter 169
orassign 164
not 122
join 121
refgen 104
list 103
print 101
next 91
rv2gv 87
anonlist 83
length 78
eq 78
anonhash 74
mapstart 73
mapwhile 73
warn 72
require 69
exists 63
keys 56
grepstart 54
grepwhile 54
regcomp 53
aelemfast 53
ref 52
ftfile 51
die 49
sprintf 48
enterloop 48
stringify 45
rv2cv 44
stub 43
aelem 42
last 38
split 38
pushre 38
sort 38
ftdir 38
lslice 35
aelemfast_lex 34
rv2sv 34
sne 29
caller 28
leavetry 27
entertry 27
undef 26
bit_and 26
uc 26
delete 26
add 24
hslice 24
scalar 22
substr 21
schomp 21
srefgen 21
ge 21
method 20
preinc 20
quotemeta 18
chdir 18
backtick 18
bit_or 17
gt 17
lc 16
lt 16
goto 16
gelem 16
unshift 15
repeat 14
anoncode 14
ftis 13
ne 13
pop 12
redo 12
subtract 11
vec 11
chmod 11
each 11
stat 11
open 11
close 10
index 10
schop 10
wantarray 10
ftlink 10
readline 10
closedir 9
postinc 9
regcmaybe 9
av2arylen 8
trans 8
readlink 8
readdir 7
values 7
fteread 7
lstat 6
bless 6
predec 6
open_dir 6
unlink 6
ftsize 5
range 5
flop 5
aslice 5
flip 5
dofile 4
entereval 4
fttty 4
splice 4
qr 3
ftewrite 3
modulo 3
scmp 3
complement 3
dor 3
fteexec 2
localtime 2
le 2
gpwnam 2
eof 2
ggrnam 2
rename 2
select 2
exit 2
reverse 2
ftchr 2
system 2
ucfirst 2
right_shift 1
postdec 1
rewinddir 1
multiply 1
prtf 1
mkdir 1
int 1
exec 1
chown 1
slt 1
tms 1
rmdir 1
seek 1
chomp 1
sgt 1
op class:
OP 15643
UNOP 12472
SVOP 6343
BINOP 5850
COP 4824
LISTOP 3953
LOGOP 2639
PADOP 2149
PMOP 545
LOOP 217
PVOP 17
Generating a nmake-style Makefile
Writing Makefile for B::Stats
Writing MYMETA.yml and MYMETA.json
B::Stats static end-time:
files=58 lines=31571 ops=86409
op name:
null 14383
padsv 10953
const 8253
nextstate 7760
pushmark 4396
padrange 2506
gv 2368
sassign 2218
concat 2157
rv2hv 2110
helem 2036
entersub 1980
and 1771
lineseq 1550
rv2av 1203
gvsv 1178
enter 1164
leave 1163
or 1012
return 1008
leavesub 986
padav 961
cond_expr 911
method_named 908
aassign 903
scope 836
match 458
padhv 438
defined 405
seq 394
leaveloop 349
unstack 335
aelem 320
push 315
shift 314
subst 276
iter 249
enteriter 249
aelemfast 239
not 200
orassign 188
refgen 170
ref 157
length 148
anonlist 143
next 143
join 142
list 141
rv2gv 137
anonhash 132
eq 125
require 119
exists 116
undef 110
print 104
enterloop 100
keys 100
die 97
mapwhile 92
mapstart 92
regcomp 90
warn 81
grepwhile 75
grepstart 75
rv2cv 74
rv2sv 68
stringify 66
last 64
substr 64
stub 63
aelemfast_lex 62
sprintf 61
add 61
qr 55
ftfile 53
entertry 52
leavetry 52
sne 49
gt 47
delete 46
sort 45
ftdir 44
bit_and 44
lslice 41
split 41
pushre 41
srefgen 40
lt 39
lc 36
caller 35
preinc 34
ge 33
subtract 31
anoncode 30
bless 29
chdir 27
scalar 26
hslice 26
uc 26
method 26
quotemeta 22
bit_or 22
repeat 21
predec 21
schomp 21
postinc 20
ne 19
backtick 18
goto 18
wantarray 18
pop 18
gelem 17
unshift 17
open 15
each 15
le 15
ftis 14
index 14
close 13
vec 13
readline 12
redo 12
ftlink 12
stat 12
lstat 12
chmod 11
closedir 11
av2arylen 11
schop 10
regcmaybe 9
fteread 9
aslice 9
readlink 9
readdir 9
values 8
open_dir 8
hex 8
trans 8
chr 8
complement 7
splice 7
scmp 7
unpack 7
entereval 7
unlink 6
flip 5
flop 5
ftsize 5
range 5
modulo 4
pack 4
dofile 4
fttty 4
ucfirst 3
sge 3
dor 3
ftewrite 3
multiply 3
ord 3
system 2
reverse 2
ftchr 2
seek 2
rename 2
rindex 2
ggrnam 2
int 2
exit 2
select 2
flock 2
fteexec 2
pos 2
postdec 2
eof 2
gpwnam 2
localtime 2
rmdir 1
tms 1
sysopen 1
chomp 1
sgt 1
exec 1
slt 1
chown 1
prtf 1
mkdir 1
sle 1
leavesublv 1
divide 1
right_shift 1
binmode 1
truncate 1
oct 1
rewinddir 1
op class:
OP 24430
UNOP 20639
SVOP 9191
BINOP 8775
COP 7760
LISTOP 6395
LOGOP 4199
PADOP 3815
PMOP 830
LOOP 349
PVOP 26
B::Stats dynamic run-time:
files=60 lines=322 ops=7
op name:
nextstate 7
op class:
COP 7
7 ops? really? The op counter is not in the op loop. https://github.com/rurban/B-Stats/blob/master/Stats.xs#L57 Its just recording the 1st op of every entry into the runloop. Putting a breakpoint on the op ++ line gives a callstack of,
ntdll.dll!_DbgBreakPoint@0()
> Stats.dll!my_runops(interpreter * my_perl=0x00364d2c) Line 166 C
perl519.dll!Perl_call_sv(interpreter * my_perl=0x00364d2c, sv * sv=0x00d823dc, volatile long flags=13) Line 2771 + 0xc C
perl519.dll!Perl_call_list(interpreter * my_perl=0x00364d2c, long oldscope=8, av * paramList=0x00b9ceec) Line 4873 C
perl519.dll!S_process_special_blocks(interpreter * my_perl=0x00070023, long floor=113, const char * const fullname=0x009059a8, gv * const gv=0x00d7c1cc, cv * const cv=0x00d823dc) Line 8063 C
perl519.dll!Perl_newATTRSUB_x(interpreter * my_perl=0x00000000, long floor=113, op * o=0x00991c88, op * proto=0x00000000, void * attrs=0x2802cee5, op * block=0x0123bda4, char o_is_gv=0) Line 8023 + 0x13 C
perl519.dll!Perl_utilize(interpreter * my_perl=0x00000000, int aver=1, long floor=113, op * version=0x00000000, op * idop=0x00d8238c, op * arg=0x00000000) Line 5440 + 0x7b C
perl519.dll!Perl_yyparse(interpreter * my_perl=0x00364d2c, int gramtype=1) Line 398 + 0x16 C
perl519.dll!S_doeval(interpreter * my_perl=0x00364d2c, int gimme=2, cv * outside=0x00000000, unsigned long seq=311, hv * hh=0x00000000) Line 3488 C
perl519.dll!Perl_pp_require(interpreter * my_perl=0x00000000) Line 4145 + 0x21 C
perl519.dll!Perl_runops_standard(interpreter * my_perl=0x00364d2c) Line 42 + 0x4 C
perl519.dll!Perl_call_sv(interpreter * my_perl=0x00364d2c, sv * sv=0x00d823dc, volatile long flags=13) Line 2771 + 0xc C
perl519.dll!Perl_call_list(interpreter * my_perl=0x00364d2c, long oldscope=1, av * paramList=0x00986364) Line 4873 C
perl519.dll!perl_run(interpreter * my_perl=0x00364d2c) Line 2382 + 0x12 C
perl519.dll!RunPerl(int argc=3, char * * argv=0x01364c68, char * * env=0x00363328) Line 258 + 0x6 C
perl.exe!mainCRTStartup() Line 398 + 0xe C
kernel32.dll!_BaseProcessStart@4() + 0x23
Every single time that BP was hit, which is 7 times, it was inside pp_require and yy_parse. So even if the counter was moved to inside the do while loop, it won't profile most or any runtime ops.
When you originally described the module to me offline, I thought it would have per op profiling/benchmarking, I see that it just has counts of ops after compile time, and op run counts during runtime. But not time passage is associated to these ops. NYTProf is too heavy and too much on statements timings and replacing pp_funcs. I want opcode timings ( min, max, avg, maybe min2, max2 to see the spread between.the randomness) with mach_absolute_time/QueryPerformanceCounter resolution. Should B::Stats have such feature this?
First issue
C:\sources\B-Stats>perl makefile.pl
Checking if your kit is complete...
Warning: the following files are missing in your kit:
lib/B/Stats/Minus.pm
META.yml
Please inform the author.
Generating a nmake-style Makefile
Writing Makefile for B::Stats
Writing MYMETA.yml and MYMETA.json
Fix the manifest/.gitignore until there are no conflicts. I am using the git repo, so some things might be going into the tarball that aren't in the repo.
Next, Perl_debop isn't exported, and on Win32, symbols aren't extern/public unless explicitly labeled as such, so this doesn't build.
C:\sources\B-Stats>nmake test
Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
cp lib/B/Stats/Minus.pm.tmpl blib\lib\B\Stats\Minus.pm.tmpl
cp lib/B/Stats.pm blib\lib\B\Stats.pm
Running Mkbootstrap for B::Stats ()
C:\perl519\bin\perl.exe -MExtUtils::Command -e chmod -- 644 Stats.bs
C:\perl519\bin\perl.exe C:\perl519\lib\ExtUtils\xsubpp -typemap C:\perl
519\lib\ExtUtils\typemap Stats.xs > Stats.xsc && C:\perl519\bin\perl.exe -MExtU
tils::Command -e mv -- Stats.xsc Stats.c
cl -c -nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -G7 -GL -DWIN32 -D_CONSOLE
-DNO_STRICT -DPERL_TEXTMODE_SCRIPTS -DPERL_HASH_FUNC_ONE_AT_A_TIME -DPERL_IMPLI
CIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -D_USE_32BIT_TIME_T -O1 -MD -Zi -DN
DEBUG -G7 -GL -DVERSION=\"0.05\" -DXS_VERSION=\"0.05\" "-IC:\perl519\lib\CO
RE" Stats.c
Stats.c
C:\perl519\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>\
"B::Stats\", 'DLBASE' => 'Stats', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS
' => { }, 'DL_VARS' => []);"
link -out:blib\arch\auto\B\Stats\Stats.dll -dll -nologo -nodefaultlib -d
ebug -opt:ref,icf -ltcg -libpath:"c:\perl519\lib\CORE" -machine:x86 Stats.obj
C:\perl519\lib\CORE\perl519.lib oldnames.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib net
api32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32
.lib comctl32.lib msvcrt.lib -def:Stats.def
Creating library blib\arch\auto\B\Stats\Stats.lib and object blib\arch\auto\B
\Stats\Stats.exp
Stats.obj : error LNK2001: unresolved external symbol __imp__Perl_debop
blib\arch\auto\B\Stats\Stats.dll : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: 'link' : return code '0x460'
Stop.
C:\sources\B-Stats>
commenting out that line with Perl_debop causes test fails
C:\perl519\bin\perl.exe "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
Can't locate B/Stats/Minus.pm in @INC (you may need to install the B::Stats::Minus module) (@INC contains: C:\sources\B-Stats\blib\arch C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\arch C:/perl519/site/lib C:/perl519/lib .) at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
BEGIN failed--compilation aborted at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
Compilation failed in require at (eval 3) line 18.
BEGIN failed--compilation aborted at (eval 3) line 18.
BEGIN failed--compilation aborted.
# Failed test '-MO=Stats'
# at t/compile.t line 11.
# ''
# doesn't match '(?^m:^B::Stats static compile-time:)'
Can't locate B/Stats/Minus.pm in @INC (you may need to install the B::Stats::Minus module) (@INC contains: C:\sources\B-Stats\blib\arch C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\arch C:/perl519/site/lib C:/perl519/lib .) at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
BEGIN failed--compilation aborted at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
Compilation failed in require.
BEGIN failed--compilation aborted.
# Failed test '-MB::Stats -c'
# at t/compile.t line 15.
# ''
# doesn't match '(?^m:^B::Stats static compile-time:)'
# Failed test '-MB::Stats -e'
# at t/compile.t line 16.
# ''
# doesn't match '(?^m:^B::Stats static end-time:)'
# Failed test '-MB::Stats -r'
# at t/compile.t line 17.
# ''
# doesn't match '(?^m:^B::Stats dynamic run-time:)'
# Looks like you failed 4 tests of 5.
t/compile.t .................
Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/5 subtests
# compare B::Terse with B::Stats
Can't find string terminator "'" anywhere before EOF.
Can't locate B/Stats/Minus.pm in @INC (you may need to install the B::Stats::Minus module) (@INC contains: C:\sources\B-Stats\blib\arch C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\arch C:/perl519/site/lib C:/perl519/lib .) at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
BEGIN failed--compilation aborted at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
Compilation failed in require at (eval 3) line 18.
BEGIN failed--compilation aborted at (eval 3) line 18.
BEGIN failed--compilation aborted.
t/exact.t ................... ok
Can't locate B/Stats/Minus.pm in @INC (you may need to install the B::Stats::Minus module) (@INC contains: C:\sources\B-Stats\blib\arch C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\arch C:/perl519/site/lib C:/perl519/lib .) at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
BEGIN failed--compilation aborted at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
Compilation failed in require.
BEGIN failed--compilation aborted.
# Failed test '-MB::Stats=-c,-u => c'
# at t/options.t line 12.
# ''
# doesn't match '(?^m:^B::Stats static compile-time:)'
# Failed test 'nextstate > 0'
# at t/options.t line 17.
# ''
# doesn't match '(?^m:^nextstate\s+[1-9]\d+$)'
Can't locate B/Stats/Minus.pm in @INC (you may need to install the B::Stats::Minus module) (@INC contains: C:\sources\B-Stats\blib\arch C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\arch C:/perl519/site/lib C:/perl519/lib .) at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
BEGIN failed--compilation aborted at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
Compilation failed in require.
BEGIN failed--compilation aborted.
# Failed test '-MB::Stats -r'
# at t/options.t line 22.
# ''
# doesn't match '(?^m:^B::Stats dynamic run-time:)'
Can't locate B/Stats/Minus.pm in @INC (you may need to install the B::Stats::Minus module) (@INC contains: C:\sources\B-Stats\blib\arch C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\arch C:/perl519/site/lib C:/perl519/lib .) at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
BEGIN failed--compilation aborted at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
Compilation failed in require at (eval 3) line 18.
BEGIN failed--compilation aborted at (eval 3) line 18.
BEGIN failed--compilation aborted.
# Failed test '-MO=Stats,-c,-u => c'
# at t/options.t line 26.
# ''
# doesn't match '(?^m:^B::Stats static compile-time:)'
Can't locate B/Stats/Minus.pm in @INC (you may need to install the B::Stats::Minus module) (@INC contains: C:\sources\B-Stats\blib\arch C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\arch C:/perl519/site/lib C:/perl519/lib .) at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
BEGIN failed--compilation aborted at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
Compilation failed in require.
BEGIN failed--compilation aborted.
# Failed test '-MO=Stats,-ceu => c'
# at t/options.t line 32.
# ''
# doesn't match '(?^m:^B::Stats static compile-time:)'
# Failed test '-MO=Stats,-ceu => e'
# at t/options.t line 33.
# ''
# doesn't match '(?^m:^B::Stats static end-time:)'
# Looks like you failed 6 tests of 15.
t/options.t .................
Dubious, test returned 6 (wstat 1536, 0x600)
Failed 6/15 subtests
Can't locate B/Stats/Minus.pm in @INC (you may need to install the B::Stats::Minus module) (@INC contains: C:\sources\B-Stats\blib\arch C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\arch C:/perl519/site/lib C:/perl519/lib .) at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
BEGIN failed--compilation aborted at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
Compilation failed in require.
BEGIN failed--compilation aborted.
# Failed test '-MB::Stats=-r => r'
# at t/runtime.t line 13.
# ''
# doesn't match '(?^m:^B::Stats dynamic run-time:)'
# Failed test '-MB::Stats,-r => !u'
# at t/runtime.t line 14.
# ''
# doesn't match '(?^m:^op class:)'
# Failed test 'nextstate > 0'
# at t/runtime.t line 16.
# ''
# doesn't match '(?^m:^nextstate\s+[1-9]\d*$)'
# Failed test 'COP > 0'
# at t/runtime.t line 17.
# ''
# doesn't match '(?^m:^COP\s+[1-9]\d*$)'
# Looks like you failed 4 tests of 6.
t/runtime.t .................
Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/6 subtests
Can't locate B/Stats/Minus.pm in @INC (you may need to install the B::Stats::Minus module) (@INC contains: C:\sources\B-Stats\blib\arch C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\arch C:/perl519/site/lib C:/perl519/lib .) at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
BEGIN failed--compilation aborted at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
Compilation failed in require.
BEGIN failed--compilation aborted.
# Failed test '-MB::Stats=-t => c'
# at t/table.t line 11.
# ''
# doesn't match '(?^m:^B::Stats static compile-time:)'
# Failed test '-MB::Stats=-t => e'
# at t/table.t line 12.
# ''
# doesn't match '(?^m:^B::Stats static end-time:)'
# Failed test '-MB::Stats=-t => r'
# at t/table.t line 13.
# ''
# doesn't match '(?^m:^B::Stats dynamic run-time:)'
# Failed test '-MB::Stats,-t => !u'
# at t/table.t line 14.
# ''
# doesn't match '(?^m:^op class:)'
# Failed test '-MB::Stats,-t => t'
# at t/table.t line 15.
# ''
# doesn't match '(?^m:^B::Stats table:)'
# Failed test 'nextstate in -c'
# at t/table.t line 17.
# ''
# doesn't match '(?^m:^nextstate\s+[1-9]\d+$)'
# Failed test 'nextstate in table'
# at t/table.t line 18.
# ''
# doesn't match '(?^m:^nextstate\s+[1-9]\d+\s+[1-9]\d+\s+)'
Can't locate B/Stats/Minus.pm in @INC (you may need to install the B::Stats::Minus module) (@INC contains: C:\sources\B-Stats\blib\arch C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\lib C:\sources\B-Stats\blib\arch C:/perl519/site/lib C:/perl519/lib .) at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
BEGIN failed--compilation aborted at C:\sources\B-Stats\blib\lib/B/Stats.pm line 101.
Compilation failed in require.
BEGIN failed--compilation aborted.
# Failed test '-MB::Stats=-t,-u => c'
# at t/table.t line 22.
# ''
# doesn't match '(?^m:^B::Stats static compile-time:)'
# Failed test '-MB::Stats=-t,-u => e'
# at t/table.t line 23.
# ''
# doesn't match '(?^m:^B::Stats static end-time:)'
# Failed test '-MB::Stats=-t,-u => r'
# at t/table.t line 24.
# ''
# doesn't match '(?^m:^B::Stats dynamic run-time:)'
# Failed test '-MB::Stats,-t,-u => t'
# at t/table.t line 26.
# ''
# doesn't match '(?^m:^B::Stats table:)'
# Failed test 'nextstate in table (c+e)'
# at t/table.t line 29.
# ''
# doesn't match '(?^m:^nextstate\s+[1-9]\d+\s+[1-9]\d+)'
# Failed test 'nextstate in table (c+e+r)'
# at t/table.t line 30.
# ''
# doesn't match '(?^m:^nextstate\s+[1-9]\d*\s+[1-9]\d*\s+[1-9]\d*)'
# Looks like you failed 13 tests of 15.
t/table.t ...................
Dubious, test returned 13 (wstat 3328, 0xd00)
Failed 13/15 subtests
t/z_kwalitee.t .............. skipped: Test::Kwalitee needed for testing kwalitee
t/z_meta.t .................. skipped: Test::CPAN::Meta 0.12 not available for testing
t/z_perl_minimum_version.t .. skipped: Perl::MinimumVersion 1.20 not available for testing
t/z_pod-coverage.t .......... skipped: Test::Pod::Coverage 1.04 required for testing POD coverage
t/z_pod.t ................... skipped: Test::Pod 1.00 required for testing POD
Test Summary Report
-------------------
t/compile.t (Wstat: 1024 Tests: 5 Failed: 4)
Failed tests: 1, 3-5
Non-zero exit status: 4
t/options.t (Wstat: 1536 Tests: 15 Failed: 6)
Failed tests: 1, 5, 8-9, 12-13
Non-zero exit status: 6
t/runtime.t (Wstat: 1024 Tests: 6 Failed: 4)
Failed tests: 3-6
Non-zero exit status: 4
t/table.t (Wstat: 3328 Tests: 15 Failed: 13)
Failed tests: 1-10, 12, 14-15
Non-zero exit status: 13
Files=10, Tests=44, 2 wallclock secs ( 0.03 usr + 0.05 sys = 0.08 CPU)
Result: FAIL
Failed 4/10 test programs. 27/44 subtests failed.
NMAKE : fatal error U1077: 'C:\perl519\bin\perl.exe' : return code '0xff'
Stop.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.