← Index
NYTProf Performance Profile   « line view »
For Makefile.PL
  Run on Sun Mar 1 16:04:44 2015
Reported on Sun Mar 1 16:09:01 2015

FilenameC:/tmp64ng/data/.cpanm/work/1425221137.10360/Math-MPFR-3.23/Makefile.PL
StatementsExecuted 41 statements in 0s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11178.0ms281msmain::::BEGIN@1 main::BEGIN@1
1013220s0sB::SV::::FLAGS B::SV::FLAGS (xsub)
93210s0sEncode::XS::::encodeEncode::XS::encode (xsub)
3110s0sEncode::XS::::needs_linesEncode::XS::needs_lines (xsub)
3110s0sEncode::XS::::renewEncode::XS::renew (xsub)
35310s0sInternals::::SvREADONLY Internals::SvREADONLY (xsub)
1110s0sUNIVERSAL::::VERSION UNIVERSAL::VERSION (xsub)
199660s0sUNIVERSAL::::can UNIVERSAL::can (xsub)
23330s0sUNIVERSAL::::isa UNIVERSAL::isa (xsub)
1110s0smain::::BEGIN@2 main::BEGIN@2
33110s0smro::::method_changed_in mro::method_changed_in (xsub)
138320s0sutf8::::downgrade utf8::downgrade (xsub)
1377320s0sutf8::::encode utf8::encode (xsub)
1110s0sutf8::::is_utf8 utf8::is_utf8 (xsub)
11320s0sutf8::::upgrade utf8::upgrade (xsub)
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
120s2281ms
# spent 281ms (78.0+203) within main::BEGIN@1 which was called: # once (78.0ms+203ms) by main::NULL at line 1
use ExtUtils::MakeMaker;
# spent 281ms making 1 call to main::BEGIN@1 # spent 0s making 1 call to Exporter::import
220s20s
# spent 0s within main::BEGIN@2 which was called: # once (0s+0s) by main::NULL at line 2
use Config;
# spent 0s making 1 call to Config::import # spent 0s making 1 call to main::BEGIN@2
3#require 5.008008;
4
510sour %args = map { split /\s*=\s*/ } @ARGV;
610sour $LIBS = $args{ LIBS } || "-lmpfr -lgmp";
710sour $INC = $args{ INC };
8
910s$use_64_bit_int = 0; # Let perl decide whether to include 64-bit 'long long' support
1010s$use_long_double = 0;# Let perl decide whether to include 'long double' support
11
12#$use_64_bit_int = -1; # Force exclusion of 64-bit 'long long' support
13#$use_long_double = -1;# Force exclusion of 'long double' support
14
15#$use_64_bit_int = 1; # Force inclusion of 64-bit 'long long' support
16#$use_long_double = 1;# Force inclusion of 'long double' support
17
1810s$have_decimal64 = 0;
1910sfor(@ARGV) {
20 $have_decimal64 = 1 if $_ eq 'D64=1';
21}
22#$have_decimal64 = 1; # Force inclusion of _Decimal64 support
23 # This will also define MPFR_WANT_DECIMAL_FLOATS (as that needs to be defined
24 # before mpfr.h is included).
25
2610smy $d64_message = $have_decimal64 ? "Attempting to build with _Decimal64 support\n"
27 : "Building without _Decimal64 support\n";
28
29# We want to set $have_float128 to 1 if and only if:
30# the mpfr library was built with the configure option '--enable-float128' && either:
31# $Config{nvtype} is '__float128'
32# or
33# Math::Float128 has been installed.
34
3510s$have_float128 = 0;
3610sfor(@ARGV) {
37 $have_float128 = 1 if $_ eq 'F128=1';
38}
39#$have_float128 = 1; # Force inclusion of __float128 support
40 # This will also define MPFR_WANT_FLOAT128 (as that needs to be defined
41 # before mpfr.h is included).
42
4310smy $float128_message = $have_float128 ? "Attempting to build with __float128 support\n"
44 : "Building without __float128 support\n";
45
4610smy $defines = $] < 5.008 ? "-DOLDPERL" : "-DNEWPERL";
47
4810sif($use_64_bit_int == -1) {}
49elsif($use_64_bit_int == 1) {$defines .= " -DMATH_MPFR_NEED_LONG_LONG_INT -DIVSIZE_BITS=" . (8 * $Config{ivsize})}
50else {
5110s30s unless($Config{ivsize} < 8 || $Config{ivtype} eq 'long') {
# spent 0s making 3 calls to Config::FETCH, avg 0s/call
52 $defines .= " -DMATH_MPFR_NEED_LONG_LONG_INT -DIVSIZE_BITS=" . (8 * $Config{ivsize});
53 }
54}
55
5610sif($use_long_double == -1) {}
57elsif($use_long_double == 1) {$defines .= " -DUSE_LONG_DOUBLE"}
58else {
5910s10s if($Config::Config{nvsize} > 8 ) {
# spent 0s making 1 call to Config::FETCH
60 $defines .= " -DUSE_LONG_DOUBLE";
61 }
62}
63
6410s$defines .= " -DMPFR_WANT_DECIMAL_FLOATS" if $have_decimal64;
6510s$defines .= " -DMPFR_WANT_FLOAT128" if $have_float128;
6610s10s$defines .= " -DNV_IS_FLOAT128" if $Config{nvtype} eq '__float128';
# spent 0s making 1 call to Config::FETCH
6710s10s$defines .= " -DNV_IS_LONG_DOUBLE" if $Config{nvtype} eq 'long double';
# spent 0s making 1 call to Config::FETCH
68
6910s10sprint "\nThis module requires the following C libraries:\n";
# spent 0s making 1 call to main::CORE:print
7010s10sprint " gmp-4.2.0 (or later)\n mpfr-2.4.0 (or later)\n\n";
# spent 0s making 1 call to main::CORE:print
7110s20s$defines =~ /-DMATH_MPFR_NEED_LONG_LONG_INT/ ? print "Building with 'long long' support\n" :
# spent 0s making 1 call to main::CORE:match # spent 0s making 1 call to main::CORE:print
72 print "Building without 'long long' support\n";
73
7410s10sprint "If this is wrong, see the \"64-bit support\" section in the README\n\n";
# spent 0s making 1 call to main::CORE:print
75
7610s20s$defines =~ /-DUSE_LONG_DOUBLE/ ? print "Building with 'long double' support\n" :
# spent 0s making 1 call to main::CORE:match # spent 0s making 1 call to main::CORE:print
77 print "Building without 'long double' support\n";
78
7910s10sprint "If this is wrong, see the \"64-bit support\" section in the README\n\n";
# spent 0s making 1 call to main::CORE:print
80
8110s10sprint "\n$d64_message";
# spent 0s making 1 call to main::CORE:print
8210s10sprint "If this is wrong, see the \"Decimal64 conversion\" section in the README\n\n";
# spent 0s making 1 call to main::CORE:print
83
8410s10sprint "\n$float128_message";
# spent 0s making 1 call to main::CORE:print
8510s10sprint "If this is wrong, see the \"Float128 conversion\" section in the README\n\n";
# spent 0s making 1 call to main::CORE:print
86
8710smy %options = (
88 NAME => 'Math::MPFR',
89 AUTHOR => 'Sisyphus (sisyphus at (@) cpan dot (.) org)',
90 ABSTRACT => 'Perl interface to the MPFR (floating point) library',
91 DEFINE => $defines,
92 LIBS => [
93 '-lmpfr -lgmp'
94 ],
95 LICENSE => 'perl',
96 VERSION_FROM => 'MPFR.pm',
97 clean => { FILES => 'out1.txt out2.txt out3.txt out4.txt out5.txt out6.txt out7.txt save_child_setting.txt p_spec.txt' },
98 META_MERGE => {
99 'meta-spec' => { version => 2 },
100 resources => {
101 repository => {
102 type => 'git',
103 url => 'https://github.com/sisyphus/math-mpfr.git',
104 web => 'https://github.com/sisyphus/math-mpfr',
105 },
106 },
107 },
108);
109
11010smy %prereq = ();
11110s$prereq{'Math::Decimal64'} = '0.01' if $have_decimal64;
11210s$prereq{'Math::Float128'} = '0.01' if ($have_float128 && $Config{nvtype} ne '__float128');
113
11410s$options{PREREQ_PM} = \%prereq;
115
11610s162.3sWriteMakefile(%options);
# spent 62.3s making 1 call to ExtUtils::MakeMaker::WriteMakefile
117
118# Remove the Makefile dependency. Causes problems on a few systems.
11910ssub MY::makefile { '' }
120
 
# spent 0s within B::SV::FLAGS which was called 1013 times, avg 0s/call: # 734 times (0s+0s) by JSON::PP::value_to_json at line 406 of JSON/PP.pm, avg 0s/call # 279 times (0s+0s) by CPAN::Meta::YAML::_has_internal_string_value at line 656 of CPAN/Meta/YAML.pm, avg 0s/call
sub B::SV::FLAGS; # xsub
# spent 0s within Encode::XS::encode which was called 93 times, avg 0s/call: # 90 times (0s+0s) by ExtUtils::MakeMaker::CORE:print at line 1182 of ExtUtils/MakeMaker.pm, avg 0s/call # 3 times (0s+0s) by ExtUtils::MakeMaker::CORE:close at line 1186 of ExtUtils/MakeMaker.pm, avg 0s/call
sub Encode::XS::encode; # xsub
# spent 0s within Encode::XS::needs_lines which was called 3 times, avg 0s/call: # 3 times (0s+0s) by ExtUtils::MakeMaker::CORE:binmode at line 1175 of ExtUtils/MakeMaker.pm, avg 0s/call
sub Encode::XS::needs_lines; # xsub
# spent 0s within Encode::XS::renew which was called 3 times, avg 0s/call: # 3 times (0s+0s) by ExtUtils::MakeMaker::CORE:binmode at line 1175 of ExtUtils/MakeMaker.pm, avg 0s/call
sub Encode::XS::renew; # xsub
# spent 0s within Internals::SvREADONLY which was called 35 times, avg 0s/call: # 33 times (0s+0s) by constant::import at line 149 of constant.pm, avg 0s/call # once (0s+0s) by constant::BEGIN@24 at line 32 of constant.pm # once (0s+0s) by constant::BEGIN@24 at line 33 of constant.pm
sub Internals::SvREADONLY; # xsub
# spent 0s within UNIVERSAL::VERSION which was called: # once (0s+0s) by version::BEGIN@1 at line 1 of (eval 6)[version.pm:19]
sub UNIVERSAL::VERSION; # xsub
# spent 0s within UNIVERSAL::can which was called 199 times, avg 0s/call: # 168 times (0s+0s) by ExtUtils::MakeMaker::new at line 735 of ExtUtils/MakeMaker.pm, avg 0s/call # 19 times (0s+0s) by JSON::PP::object_to_json at line 323 of JSON/PP.pm, avg 0s/call # 9 times (0s+0s) by Carp::format_arg at line 262 of Carp.pm, avg 0s/call # once (0s+0s) by CPAN::Meta::Prereqs::BEGIN@17 at line 51 of CPAN/Meta/Requirements.pm # once (0s+0s) by ExtUtils::MakeMaker::BEGIN@10 at line 24 of ExtUtils/MakeMaker/version.pm # once (0s+0s) by CPAN::Meta::BEGIN@58 at line 43 of CPAN/Meta/Converter.pm
sub UNIVERSAL::can; # xsub
# spent 0s within UNIVERSAL::isa which was called 23 times, avg 0s/call: # 19 times (0s+0s) by JSON::PP::object_to_json at line 321 of JSON/PP.pm, avg 0s/call # 2 times (0s+0s) by ExtUtils::MakeMaker::_is_of_type at line 171 of ExtUtils/MakeMaker.pm, avg 0s/call # 2 times (0s+0s) by base::import at line 91 of base.pm, avg 0s/call
sub UNIVERSAL::isa; # xsub
# spent 0s within mro::method_changed_in which was called 33 times, avg 0s/call: # 33 times (0s+0s) by constant::import at line 182 of constant.pm, avg 0s/call
sub mro::method_changed_in; # xsub
# spent 0s within utf8::downgrade which was called 138 times, avg 0s/call: # 54 times (0s+0s) by JSON::PP::PP_decode_json at line 653 of JSON/PP.pm, avg 0s/call # 42 times (0s+0s) by Carp::format_arg at line 309 of Carp.pm, avg 0s/call # 42 times (0s+0s) by Carp::format_arg at line 285 of Carp.pm, avg 0s/call
sub utf8::downgrade; # xsub
# spent 0s within utf8::encode which was called 1377 times, avg 0s/call: # 1374 times (0s+0s) by JSON::PP::string_to_json at line 480 of JSON/PP.pm, avg 0s/call # 2 times (0s+0s) by base::__ANON__[C:/tmp64ng/perl/lib/base.pm:71] at line 69 of base.pm, avg 0s/call # once (0s+0s) by JSON::PP::PP_decode_json at line 658 of JSON/PP.pm
sub utf8::encode; # xsub
# spent 0s within utf8::is_utf8 which was called: # once (0s+0s) by Portable::LoadYaml::_load_string at line 106 of Portable/LoadYaml.pm
sub utf8::is_utf8; # xsub
# spent 0s within utf8::upgrade which was called 11 times, avg 0s/call: # 9 times (0s+0s) by JSON::PP::PP_encode_json at line 296 of JSON/PP.pm, avg 0s/call # once (0s+0s) by Portable::LoadYaml::_load_string at line 114 of Portable/LoadYaml.pm # once (0s+0s) by JSON::PP::PP_decode_json at line 657 of JSON/PP.pm
sub utf8::upgrade; # xsub