← Index
NYTProf Performance Profile   « line view »
For /usr/local/libexec/sympa/task_manager-debug.pl
  Run on Tue Jun 1 22:32:51 2021
Reported on Tue Jun 1 22:35:06 2021

Filename/usr/local/lib/perl5/site_perl/mach/5.32/DateTime/Infinite.pm
StatementsExecuted 0 statements in 0s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
0000s0sDateTime::Infinite::::BEGIN@10 DateTime::Infinite::BEGIN@10
0000s0sDateTime::Infinite::::BEGIN@11 DateTime::Infinite::BEGIN@11
0000s0sDateTime::Infinite::::BEGIN@13 DateTime::Infinite::BEGIN@13
0000s0sDateTime::Infinite::::BEGIN@17 DateTime::Infinite::BEGIN@17
0000s0sDateTime::Infinite::::BEGIN@4 DateTime::Infinite::BEGIN@4
0000s0sDateTime::Infinite::::BEGIN@5 DateTime::Infinite::BEGIN@5
0000s0sDateTime::Infinite::::BEGIN@6 DateTime::Infinite::BEGIN@6
0000s0sDateTime::Infinite::Future::::BEGIN@78DateTime::Infinite::Future::BEGIN@78
0000s0sDateTime::Infinite::Future::::BEGIN@79DateTime::Infinite::Future::BEGIN@79
0000s0sDateTime::Infinite::Future::::BEGIN@81DateTime::Infinite::Future::BEGIN@81
0000s0sDateTime::Infinite::Future::::newDateTime::Infinite::Future::new
0000s0sDateTime::Infinite::Past::::BEGIN@103 DateTime::Infinite::Past::BEGIN@103
0000s0sDateTime::Infinite::Past::::BEGIN@104 DateTime::Infinite::Past::BEGIN@104
0000s0sDateTime::Infinite::Past::::BEGIN@106 DateTime::Infinite::Past::BEGIN@106
0000s0sDateTime::Infinite::Past::::new DateTime::Infinite::Past::new
0000s0sDateTime::Infinite::::STORABLE_freeze DateTime::Infinite::STORABLE_freeze
0000s0sDateTime::Infinite::::STORABLE_thaw DateTime::Infinite::STORABLE_thaw
0000s0sDateTime::Infinite::::__ANON__ DateTime::Infinite::__ANON__ (xsub)
0000s0sDateTime::Infinite::::__ANON__[:18] DateTime::Infinite::__ANON__[:18]
0000s0sDateTime::Infinite::::_infinity_string DateTime::Infinite::_infinity_string
0000s0sDateTime::Infinite::::_rd2ymd DateTime::Infinite::_rd2ymd
0000s0sDateTime::Infinite::::_seconds_as_components DateTime::Infinite::_seconds_as_components
0000s0sDateTime::Infinite::::_week_values DateTime::Infinite::_week_values
0000s0sDateTime::Infinite::::datetime DateTime::Infinite::datetime
0000s0sDateTime::Infinite::::dmy DateTime::Infinite::dmy
0000s0sDateTime::Infinite::::hms DateTime::Infinite::hms
0000s0sDateTime::Infinite::::hour_12 DateTime::Infinite::hour_12
0000s0sDateTime::Infinite::::hour_12_0 DateTime::Infinite::hour_12_0
0000s0sDateTime::Infinite::::is_finite DateTime::Infinite::is_finite
0000s0sDateTime::Infinite::::is_infinite DateTime::Infinite::is_infinite
0000s0sDateTime::Infinite::::mdy DateTime::Infinite::mdy
0000s0sDateTime::Infinite::::stringify DateTime::Infinite::stringify
0000s0sDateTime::Infinite::::ymd DateTime::Infinite::ymd
0000s0sFakeLocale::::AUTOLOAD FakeLocale::AUTOLOAD
0000s0sFakeLocale::::BEGIN@129 FakeLocale::BEGIN@129
0000s0sFakeLocale::::BEGIN@130 FakeLocale::BEGIN@130
0000s0sFakeLocale::::BEGIN@132 FakeLocale::BEGIN@132
0000s0sFakeLocale::::BEGIN@173 FakeLocale::BEGIN@173
0000s0sFakeLocale::::__ANON__ FakeLocale::__ANON__ (xsub)
0000s0sFakeLocale::::__ANON__[:174] FakeLocale::__ANON__[:174]
0000s0sFakeLocale::::first_day_of_week FakeLocale::first_day_of_week
0000s0sFakeLocale::::id FakeLocale::id
0000s0sFakeLocale::::instance FakeLocale::instance
0000s0sFakeLocale::::language FakeLocale::language
0000s0sFakeLocale::::language_id FakeLocale::language_id
0000s0sFakeLocale::::name FakeLocale::name
0000s0sFakeLocale::::prefers_24_hour_time FakeLocale::prefers_24_hour_time
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1## no critic (Modules::ProhibitMultiplePackages)
2package DateTime::Infinite;
3
4use strict;
5use warnings;
6use namespace::autoclean;
7
8our $VERSION = '1.54';
9
10use DateTime;
11use DateTime::TimeZone;
12
13use base qw(DateTime);
14
15foreach my $m (qw( set set_time_zone truncate )) {
16 ## no critic (TestingAndDebugging::ProhibitNoStrict)
17 no strict 'refs';
18 *{"DateTime::Infinite::$m"} = sub { return $_[0] };
19}
20
21sub is_finite {0}
22sub is_infinite {1}
23
24## no critic (Subroutines::ProhibitUnusedPrivateSubroutines)
25sub _rd2ymd {
26 return $_[2] ? ( $_[1] ) x 7 : ( $_[1] ) x 3;
27}
28
29sub _seconds_as_components {
30 return ( $_[1] ) x 3;
31}
32
33sub ymd {
34 return $_[0]->iso8601;
35}
36
37sub mdy {
38 return $_[0]->iso8601;
39}
40
41sub dmy {
42 return $_[0]->iso8601;
43}
44
45sub hms {
46 return $_[0]->iso8601;
47}
48
49sub hour_12 {
50 return $_[0]->_infinity_string;
51}
52
53sub hour_12_0 {
54 return $_[0]->_infinity_string;
55}
56
57sub datetime {
58 return $_[0]->_infinity_string;
59}
60
61sub stringify {
62 return $_[0]->_infinity_string;
63}
64
65sub _infinity_string {
66 return $_[0]->{utc_rd_days} == DateTime::INFINITY
67 ? DateTime::INFINITY . q{}
68 : DateTime::NEG_INFINITY . q{};
69}
70
71sub _week_values { [ $_[0]->{utc_rd_days}, $_[0]->{utc_rd_days} ] }
72
73sub STORABLE_freeze {return}
74sub STORABLE_thaw {return}
75
76package DateTime::Infinite::Future;
77
78use strict;
79use warnings;
80
81use base qw(DateTime::Infinite);
82
83{
84 my $Pos = bless {
85 utc_rd_days => DateTime::INFINITY,
86 utc_rd_secs => DateTime::INFINITY,
87 local_rd_days => DateTime::INFINITY,
88 local_rd_secs => DateTime::INFINITY,
89 rd_nanosecs => DateTime::INFINITY,
90 tz => DateTime::TimeZone->new( name => 'floating' ),
91 locale => FakeLocale->instance,
92 },
93 __PACKAGE__;
94
95 $Pos->_calc_utc_rd;
96 $Pos->_calc_local_rd;
97
98 sub new {$Pos}
99}
100
101package DateTime::Infinite::Past;
102
103use strict;
104use warnings;
105
106use base qw(DateTime::Infinite);
107
108{
109 my $Neg = bless {
110 utc_rd_days => DateTime::NEG_INFINITY,
111 utc_rd_secs => DateTime::NEG_INFINITY,
112 local_rd_days => DateTime::NEG_INFINITY,
113 local_rd_secs => DateTime::NEG_INFINITY,
114 rd_nanosecs => DateTime::NEG_INFINITY,
115 tz => DateTime::TimeZone->new( name => 'floating' ),
116 locale => FakeLocale->instance,
117 },
118 __PACKAGE__;
119
120 $Neg->_calc_utc_rd;
121 $Neg->_calc_local_rd;
122
123 sub new {$Neg}
124}
125
126package # hide from PAUSE
127 FakeLocale;
128
129use strict;
130use warnings;
131
132use DateTime::Locale;
133
134my $Instance;
135
136sub instance {
137 return $Instance ||= bless { locale => DateTime::Locale->load('en_US') },
138 __PACKAGE__;
139}
140
141sub id {
142 return 'infinite';
143}
144
145sub language_id {
146 return 'infinite';
147}
148
149sub name {
150 'Fake locale for Infinite DateTime objects';
151}
152
153sub language {
154 'Fake locale for Infinite DateTime objects';
155}
156
157my @methods = qw(
158 script_id
159 territory_id
160 variant_id
161 script
162 territory
163 variant
164 native_name
165 native_language
166 native_script
167 native_territory
168 native_variant
169);
170
171for my $meth (@methods) {
172 ## no critic (TestingAndDebugging::ProhibitNoStrict)
173 no strict 'refs';
174 *{$meth} = sub {undef};
175}
176
177# Totally arbitrary
178sub first_day_of_week {
179 return 1;
180}
181
182sub prefers_24_hour_time {
183 return 0;
184}
185
186our $AUTOLOAD;
187
188## no critic (ClassHierarchies::ProhibitAutoloading)
189sub AUTOLOAD {
190 my $self = shift;
191
192 my ($meth) = $AUTOLOAD =~ /::(\w+)$/;
193
194 if ( $meth =~ /format/ && $meth !~ /^(?:day|month|quarter)/ ) {
195 return $self->{locale}->$meth(@_);
196 }
197
198 return [];
199}
200
2011;
202
203# ABSTRACT: Infinite past and future DateTime objects
204
205__END__