File | /opt/wise/lib/perl5/5.10.0/warnings.pm | Statements Executed | 1275 | Total Time | 0.002395 seconds |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine | |
---|---|---|---|---|---|---|
82 | 82 | 80 | 0.00237 | 0.00237 | warnings:: | import |
20 | 20 | 14 | 0.00053 | 0.00053 | warnings:: | unimport |
0 | 0 | 0 | 0 | 0 | warnings:: | Croaker |
0 | 0 | 0 | 0 | 0 | warnings:: | __chk |
0 | 0 | 0 | 0 | 0 | warnings:: | _error_loc |
0 | 0 | 0 | 0 | 0 | warnings:: | bits |
0 | 0 | 0 | 0 | 0 | warnings:: | enabled |
0 | 0 | 0 | 0 | 0 | warnings:: | warn |
0 | 0 | 0 | 0 | 0 | warnings:: | warnif |
Line | Stmts. | Exclusive Time | Avg. | Code |
---|---|---|---|---|
1 | # -*- buffer-read-only: t -*- | |||
2 | # !!!!!!! DO NOT EDIT THIS FILE !!!!!!! | |||
3 | # This file was created by warnings.pl | |||
4 | # Any changes made here will be lost. | |||
5 | # | |||
6 | ||||
7 | package warnings; | |||
8 | ||||
9 | 1 | 1.0e-6 | 1.0e-6 | our $VERSION = '1.06'; |
10 | ||||
11 | # Verify that we're called correctly so that warnings will work. | |||
12 | # see also strict.pm. | |||
13 | 1 | 2.1e-5 | 2.1e-5 | unless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) { |
14 | my (undef, $f, $l) = caller; | |||
15 | die("Incorrect use of pragma '${\__PACKAGE__}' at $f line $l.\n"); | |||
16 | } | |||
17 | ||||
18 | =head1 NAME | |||
19 | ||||
20 | warnings - Perl pragma to control optional warnings | |||
21 | ||||
22 | =head1 SYNOPSIS | |||
23 | ||||
24 | use warnings; | |||
25 | no warnings; | |||
26 | ||||
27 | use warnings "all"; | |||
28 | no warnings "all"; | |||
29 | ||||
30 | use warnings::register; | |||
31 | if (warnings::enabled()) { | |||
32 | warnings::warn("some warning"); | |||
33 | } | |||
34 | ||||
35 | if (warnings::enabled("void")) { | |||
36 | warnings::warn("void", "some warning"); | |||
37 | } | |||
38 | ||||
39 | if (warnings::enabled($object)) { | |||
40 | warnings::warn($object, "some warning"); | |||
41 | } | |||
42 | ||||
43 | warnings::warnif("some warning"); | |||
44 | warnings::warnif("void", "some warning"); | |||
45 | warnings::warnif($object, "some warning"); | |||
46 | ||||
47 | =head1 DESCRIPTION | |||
48 | ||||
49 | The C<warnings> pragma is a replacement for the command line flag C<-w>, | |||
50 | but the pragma is limited to the enclosing block, while the flag is global. | |||
51 | See L<perllexwarn> for more information. | |||
52 | ||||
53 | If no import list is supplied, all possible warnings are either enabled | |||
54 | or disabled. | |||
55 | ||||
56 | A number of functions are provided to assist module authors. | |||
57 | ||||
58 | =over 4 | |||
59 | ||||
60 | =item use warnings::register | |||
61 | ||||
62 | Creates a new warnings category with the same name as the package where | |||
63 | the call to the pragma is used. | |||
64 | ||||
65 | =item warnings::enabled() | |||
66 | ||||
67 | Use the warnings category with the same name as the current package. | |||
68 | ||||
69 | Return TRUE if that warnings category is enabled in the calling module. | |||
70 | Otherwise returns FALSE. | |||
71 | ||||
72 | =item warnings::enabled($category) | |||
73 | ||||
74 | Return TRUE if the warnings category, C<$category>, is enabled in the | |||
75 | calling module. | |||
76 | Otherwise returns FALSE. | |||
77 | ||||
78 | =item warnings::enabled($object) | |||
79 | ||||
80 | Use the name of the class for the object reference, C<$object>, as the | |||
81 | warnings category. | |||
82 | ||||
83 | Return TRUE if that warnings category is enabled in the first scope | |||
84 | where the object is used. | |||
85 | Otherwise returns FALSE. | |||
86 | ||||
87 | =item warnings::warn($message) | |||
88 | ||||
89 | Print C<$message> to STDERR. | |||
90 | ||||
91 | Use the warnings category with the same name as the current package. | |||
92 | ||||
93 | If that warnings category has been set to "FATAL" in the calling module | |||
94 | then die. Otherwise return. | |||
95 | ||||
96 | =item warnings::warn($category, $message) | |||
97 | ||||
98 | Print C<$message> to STDERR. | |||
99 | ||||
100 | If the warnings category, C<$category>, has been set to "FATAL" in the | |||
101 | calling module then die. Otherwise return. | |||
102 | ||||
103 | =item warnings::warn($object, $message) | |||
104 | ||||
105 | Print C<$message> to STDERR. | |||
106 | ||||
107 | Use the name of the class for the object reference, C<$object>, as the | |||
108 | warnings category. | |||
109 | ||||
110 | If that warnings category has been set to "FATAL" in the scope where C<$object> | |||
111 | is first used then die. Otherwise return. | |||
112 | ||||
113 | ||||
114 | =item warnings::warnif($message) | |||
115 | ||||
116 | Equivalent to: | |||
117 | ||||
118 | if (warnings::enabled()) | |||
119 | { warnings::warn($message) } | |||
120 | ||||
121 | =item warnings::warnif($category, $message) | |||
122 | ||||
123 | Equivalent to: | |||
124 | ||||
125 | if (warnings::enabled($category)) | |||
126 | { warnings::warn($category, $message) } | |||
127 | ||||
128 | =item warnings::warnif($object, $message) | |||
129 | ||||
130 | Equivalent to: | |||
131 | ||||
132 | if (warnings::enabled($object)) | |||
133 | { warnings::warn($object, $message) } | |||
134 | ||||
135 | =back | |||
136 | ||||
137 | See L<perlmodlib/Pragmatic Modules> and L<perllexwarn>. | |||
138 | ||||
139 | =cut | |||
140 | ||||
141 | 1 | 2.5e-5 | 2.5e-5 | our %Offsets = ( |
142 | ||||
143 | # Warnings Categories added in Perl 5.008 | |||
144 | ||||
145 | 'all' => 0, | |||
146 | 'closure' => 2, | |||
147 | 'deprecated' => 4, | |||
148 | 'exiting' => 6, | |||
149 | 'glob' => 8, | |||
150 | 'io' => 10, | |||
151 | 'closed' => 12, | |||
152 | 'exec' => 14, | |||
153 | 'layer' => 16, | |||
154 | 'newline' => 18, | |||
155 | 'pipe' => 20, | |||
156 | 'unopened' => 22, | |||
157 | 'misc' => 24, | |||
158 | 'numeric' => 26, | |||
159 | 'once' => 28, | |||
160 | 'overflow' => 30, | |||
161 | 'pack' => 32, | |||
162 | 'portable' => 34, | |||
163 | 'recursion' => 36, | |||
164 | 'redefine' => 38, | |||
165 | 'regexp' => 40, | |||
166 | 'severe' => 42, | |||
167 | 'debugging' => 44, | |||
168 | 'inplace' => 46, | |||
169 | 'internal' => 48, | |||
170 | 'malloc' => 50, | |||
171 | 'signal' => 52, | |||
172 | 'substr' => 54, | |||
173 | 'syntax' => 56, | |||
174 | 'ambiguous' => 58, | |||
175 | 'bareword' => 60, | |||
176 | 'digit' => 62, | |||
177 | 'parenthesis' => 64, | |||
178 | 'precedence' => 66, | |||
179 | 'printf' => 68, | |||
180 | 'prototype' => 70, | |||
181 | 'qw' => 72, | |||
182 | 'reserved' => 74, | |||
183 | 'semicolon' => 76, | |||
184 | 'taint' => 78, | |||
185 | 'threads' => 80, | |||
186 | 'uninitialized' => 82, | |||
187 | 'unpack' => 84, | |||
188 | 'untie' => 86, | |||
189 | 'utf8' => 88, | |||
190 | 'void' => 90, | |||
191 | ); | |||
192 | ||||
193 | 1 | 2.0e-5 | 2.0e-5 | our %Bits = ( |
194 | 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x05", # [0..45] | |||
195 | 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [29] | |||
196 | 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [30] | |||
197 | 'closed' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6] | |||
198 | 'closure' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1] | |||
199 | 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [22] | |||
200 | 'deprecated' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2] | |||
201 | 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [31] | |||
202 | 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7] | |||
203 | 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3] | |||
204 | 'glob' => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4] | |||
205 | 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [23] | |||
206 | 'internal' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [24] | |||
207 | 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5..11] | |||
208 | 'layer' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8] | |||
209 | 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [25] | |||
210 | 'misc' => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [12] | |||
211 | 'newline' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9] | |||
212 | 'numeric' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [13] | |||
213 | 'once' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [14] | |||
214 | 'overflow' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [15] | |||
215 | 'pack' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [16] | |||
216 | 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [32] | |||
217 | 'pipe' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10] | |||
218 | 'portable' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [17] | |||
219 | 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [33] | |||
220 | 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [34] | |||
221 | 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [35] | |||
222 | 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [36] | |||
223 | 'recursion' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [18] | |||
224 | 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [19] | |||
225 | 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [20] | |||
226 | 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [37] | |||
227 | 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [38] | |||
228 | 'severe' => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00", # [21..25] | |||
229 | 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [26] | |||
230 | 'substr' => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [27] | |||
231 | 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x00", # [28..38] | |||
232 | 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [39] | |||
233 | 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [40] | |||
234 | 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [41] | |||
235 | 'unopened' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11] | |||
236 | 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [42] | |||
237 | 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [43] | |||
238 | 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [44] | |||
239 | 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [45] | |||
240 | ); | |||
241 | ||||
242 | 1 | 2.2e-5 | 2.2e-5 | our %DeadBits = ( |
243 | 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x0a", # [0..45] | |||
244 | 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [29] | |||
245 | 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [30] | |||
246 | 'closed' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6] | |||
247 | 'closure' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1] | |||
248 | 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [22] | |||
249 | 'deprecated' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2] | |||
250 | 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [31] | |||
251 | 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7] | |||
252 | 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3] | |||
253 | 'glob' => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4] | |||
254 | 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [23] | |||
255 | 'internal' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [24] | |||
256 | 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5..11] | |||
257 | 'layer' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8] | |||
258 | 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [25] | |||
259 | 'misc' => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [12] | |||
260 | 'newline' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9] | |||
261 | 'numeric' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [13] | |||
262 | 'once' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [14] | |||
263 | 'overflow' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [15] | |||
264 | 'pack' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [16] | |||
265 | 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [32] | |||
266 | 'pipe' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10] | |||
267 | 'portable' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [17] | |||
268 | 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [33] | |||
269 | 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [34] | |||
270 | 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [35] | |||
271 | 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [36] | |||
272 | 'recursion' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [18] | |||
273 | 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [19] | |||
274 | 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [20] | |||
275 | 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [37] | |||
276 | 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [38] | |||
277 | 'severe' => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00", # [21..25] | |||
278 | 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [26] | |||
279 | 'substr' => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [27] | |||
280 | 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x00", # [28..38] | |||
281 | 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [39] | |||
282 | 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [40] | |||
283 | 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [41] | |||
284 | 'unopened' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11] | |||
285 | 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [42] | |||
286 | 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [43] | |||
287 | 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [44] | |||
288 | 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [45] | |||
289 | ); | |||
290 | ||||
291 | 1 | 0 | 0 | $NONE = "\0\0\0\0\0\0\0\0\0\0\0\0"; |
292 | 1 | 0 | 0 | $LAST_BIT = 92 ; |
293 | 1 | 1.0e-6 | 1.0e-6 | $BYTES = 12 ; |
294 | ||||
295 | 2 | 1.7e-5 | 8.5e-6 | $All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ; |
296 | ||||
297 | sub Croaker | |||
298 | { | |||
299 | require Carp::Heavy; # this initializes %CarpInternal | |||
300 | local $Carp::CarpInternal{'warnings'}; | |||
301 | delete $Carp::CarpInternal{'warnings'}; | |||
302 | Carp::croak(@_); | |||
303 | } | |||
304 | ||||
305 | sub bits | |||
306 | { | |||
307 | # called from B::Deparse.pm | |||
308 | ||||
309 | push @_, 'all' unless @_; | |||
310 | ||||
311 | my $mask; | |||
312 | my $catmask ; | |||
313 | my $fatal = 0 ; | |||
314 | my $no_fatal = 0 ; | |||
315 | ||||
316 | foreach my $word ( @_ ) { | |||
317 | if ($word eq 'FATAL') { | |||
318 | $fatal = 1; | |||
319 | $no_fatal = 0; | |||
320 | } | |||
321 | elsif ($word eq 'NONFATAL') { | |||
322 | $fatal = 0; | |||
323 | $no_fatal = 1; | |||
324 | } | |||
325 | elsif ($catmask = $Bits{$word}) { | |||
326 | $mask |= $catmask ; | |||
327 | $mask |= $DeadBits{$word} if $fatal ; | |||
328 | $mask &= ~($DeadBits{$word}|$All) if $no_fatal ; | |||
329 | } | |||
330 | else | |||
331 | { Croaker("Unknown warnings category '$word'")} | |||
332 | } | |||
333 | ||||
334 | return $mask ; | |||
335 | } | |||
336 | ||||
337 | sub import | |||
338 | # spent 2.37ms within warnings::import which was called 82 times, avg 29µs/call:
# once (78µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/IPACTbl.pm
# once (70µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Storage.pm
# once (57µs+0) at line 4 of /wise/base/deliv/dev/lib/perl/WISE/Spawn.pm
# once (51µs+0) by re::BEGIN at line 5 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/re.pm
# once (50µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Row.pm
# once (49µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/Class/C3.pm
# once (45µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/FITSIO/Utils.pm
# once (45µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/Scope/Guard.pm
# once (40µs+0) at line 7 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Base.pm
# once (40µs+0) at line 7 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Gzip.pm
# once (39µs+0) at line 3 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Storage/Statistics.pm
# once (39µs+0) at line 4 of /wise/base/deliv/dev/lib/perl/WISE/Release.pm
# once (37µs+0) at line 4 of /wise/base/deliv/dev/lib/perl/WISE/IOUtils.pm
# once (36µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/InflateColumn.pm
# once (36µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/File/GlobMapper.pm
# once (36µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/CoUtils.pm
# once (36µs+0) at line 3 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/ResultSetColumn.pm
# once (35µs+0) at line 4 of /wise/base/deliv/dev/lib/perl/WISE/UtilsLight.pm
# once (35µs+0) at line 3 of /wise/base/static/lib/perl5/site_perl/5.10.0/Class/Accessor/Grouped.pm
# once (34µs+0) at line 4 of /wise/base/deliv/dev/lib/perl/WISE/Wrap.pm
# once (33µs+0) by WISE::IOUtils::BEGIN at line 4 of /wise/base/deliv/dev/lib/perl/x86_64-linux-thread-multi/WISE/IPACTblXS.pm
# once (33µs+0) at line 4 of /wise/base/deliv/dev/lib/perl/WISE/Utils.pm
# once (32µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/ResultSource.pm
# once (32µs+0) at line 4 of /wise/base/deliv/dev/lib/perl/x86_64-linux-thread-multi/WISE/CHealPix.pm
# once (32µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Exception.pm
# once (31µs+0) by DBIx::Class::Cursor::BEGIN at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Cursor.pm
# once (31µs+0) at line 4 of /wise/base/deliv/dev/bin/getfix
# once (31µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/Base.pm
# once (30µs+0) at line 4 of /wise/base/deliv/dev/lib/perl/WISE/Pars.pm
# once (30µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/ResultSet.pm
# once (30µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Storage/DBI/SQLite.pm
# once (29µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/ResultSourceProxy/Table.pm
# once (29µs+0) at line 9 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Uncompress/Gunzip.pm
# once (29µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Core.pm
# once (27µs+0) at line 3 of /wise/base/static/lib/perl5/site_perl/5.10.0/SQL/Abstract/Limit.pm
# once (27µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/ManyToMany.pm
# once (27µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Gzip/Constants.pm
# once (26µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Schema.pm
# once (26µs+0) at line 498 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Base/Common.pm
# once (25µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Componentised.pm
# once (25µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Uncompress/Adapter/Inflate.pm
# once (24µs+0) at line 6 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/threads/shared.pm
# once (24µs+0) at line 12 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Compress/Raw/Zlib.pm
# once (24µs+0) at line 6 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Zlib/Extra.pm
# once (24µs+0) at line 10 of /wise/base/deliv/dev/lib/perl/FITSIO.pm
# once (24µs+0) at line 3 of /wise/base/static/lib/perl5/site_perl/5.10.0/MRO/Compat.pm
# once (24µs+0) at line 4 of /wise/base/deliv/dev/lib/perl/WISE/BandUtils.pm
# once (24µs+0) at line 10 of /wise/base/deliv/dev/lib/perl/WISE/FITSIO.pm
# once (24µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class.pm
# once (23µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/ResultSource/Table.pm
# once (23µs+0) at line 5 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Uncompress/Base.pm
# once (23µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/ResultSourceHandle.pm
# once (23µs+0) by DBIx::Class::Relationship::HasOne::BEGIN at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/HasOne.pm
# once (23µs+0) by DBIx::Class::PK::Auto::BEGIN at line 6 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/PK/Auto.pm
# once (23µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/Module/Find.pm
# once (23µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/POSIX.pm
# once (23µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Base/Common.pm
# once (22µs+0) at line 41 of /wise/base/static/lib/perl5/site_perl/5.10.0/Class/C3/Componentised.pm
# once (22µs+0) by DBIx::Class::Relationship::HasMany::BEGIN at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/HasMany.pm
# once (22µs+0) by IO::BEGIN at line 8 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO.pm
# once (22µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/PK.pm
# once (21µs+0) by DBIx::Class::Relationship::CascadeActions::BEGIN at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/CascadeActions.pm
# once (21µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/ProxyMethods.pm
# once (21µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship.pm
# once (20µs+0) by mro::BEGIN at line 10 of /opt/wise/lib/perl5/5.10.0/mro.pm
# once (20µs+0) at line 6 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/RawDeflate.pm
# once (20µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Adapter/Deflate.pm
# once (20µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/File/Find.pm
# once (20µs+0) at line 52 of /opt/wise/lib/perl5/5.10.0/File/Basename.pm
# once (19µs+0) at line 4 of /wise/base/deliv/dev/lib/perl/WISE/Params.pm
# once (19µs+0) by DBIx::Class::Relationship::BelongsTo::BEGIN at line 8 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/BelongsTo.pm
# once (19µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/ResultSourceProxy.pm
# once (19µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/Accessor.pm
# once (19µs+0) at line 17 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Compress/Zlib.pm
# once (19µs+0) at line 12 of /opt/wise/lib/perl5/5.10.0/File/Copy.pm
# once (19µs+0) by DBIx::Class::Schema::load_namespaces at line 438 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Schema.pm
# once (19µs+0) by DBIx::Class::Storage::DBI::Cursor::BEGIN at line 6 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Storage/DBI/Cursor.pm
# once (18µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/Helpers.pm
# once (18µs+0) at line 6 of /wise/base/static/lib/perl5/site_perl/5.10.0/WISE/Env.pm
# once (18µs+0) at line 7 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Storage/DBI.pm
# once (17µs+0) at line 5 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Uncompress/RawInflate.pm
# once (17µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Storage/DBI/MultiDistinctEmulation.pm | |||
339 | 738 | 0.00130 | 1.8e-6 | shift; |
340 | ||||
341 | my $catmask ; | |||
342 | my $fatal = 0 ; | |||
343 | my $no_fatal = 0 ; | |||
344 | ||||
345 | my $mask = ${^WARNING_BITS} ; | |||
346 | ||||
347 | 2 | 3.0e-6 | 1.5e-6 | if (vec($mask, $Offsets{'all'}, 1)) { |
348 | $mask |= $Bits{'all'} ; | |||
349 | $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1); | |||
350 | } | |||
351 | ||||
352 | push @_, 'all' unless @_; | |||
353 | ||||
354 | foreach my $word ( @_ ) { | |||
355 | 328 | 0.00053 | 1.6e-6 | if ($word eq 'FATAL') { |
356 | $fatal = 1; | |||
357 | $no_fatal = 0; | |||
358 | } | |||
359 | elsif ($word eq 'NONFATAL') { | |||
360 | $fatal = 0; | |||
361 | $no_fatal = 1; | |||
362 | } | |||
363 | elsif ($catmask = $Bits{$word}) { | |||
364 | $mask |= $catmask ; | |||
365 | $mask |= $DeadBits{$word} if $fatal ; | |||
366 | $mask &= ~($DeadBits{$word}|$All) if $no_fatal ; | |||
367 | } | |||
368 | else | |||
369 | { Croaker("Unknown warnings category '$word'")} | |||
370 | } | |||
371 | ||||
372 | ${^WARNING_BITS} = $mask ; | |||
373 | } | |||
374 | ||||
375 | sub unimport | |||
376 | # spent 527µs within warnings::unimport which was called 20 times, avg 26µs/call:
# once (74µs+0) by Text::ParseWords::parse_line at line 61 of /opt/wise/lib/perl5/5.10.0/Text/ParseWords.pm
# once (32µs+0) by File::GlobMapper::BEGIN or File::GlobMapper::_getFiles at line 341 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/File/GlobMapper.pm
# once (29µs+0) by IO::Uncompress::Base::BEGIN or IO::Uncompress::Base::smartRead at line 84 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Uncompress/Base.pm
# once (29µs+0) at line 201 of /wise/base/static/lib/perl5/site_perl/5.10.0/Class/C3.pm
# once (29µs+0) by DBIx::Class::Relationship::ProxyMethods::BEGIN or DBIx::Class::Relationship::ProxyMethods::proxy_to_related at line 21 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/ProxyMethods.pm
# once (28µs+0) at line 47 of /wise/base/deliv/dev/lib/perl/FITSIO.pm
# once (27µs+0) by MRO::Compat::__get_all_pkgs_with_isas at line 223 of /wise/base/static/lib/perl5/site_perl/5.10.0/MRO/Compat.pm
# once (27µs+0) by Class::C3::BEGIN at line 205 of /wise/base/static/lib/perl5/site_perl/5.10.0/Class/C3.pm
# once (26µs+0) at line 39 of /wise/base/static/lib/perl5/site_perl/5.10.0/MRO/Compat.pm
# once (25µs+0) by POSIX::BEGIN or POSIX::AUTOLOAD at line 41 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/POSIX.pm
# once (24µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Core.pm
# once (22µs+0) by DBIx::Class::Relationship::ManyToMany::BEGIN or DBIx::Class::Relationship::ManyToMany::many_to_many at line 20 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/ManyToMany.pm
# once (22µs+0) by Exporter::Heavy::BEGIN or Exporter::Heavy::heavy_export at line 199 of /opt/wise/lib/perl5/5.10.0/Exporter/Heavy.pm
# once (21µs+0) by DBIx::Class::Schema::load_classes at line 287 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Schema.pm
# once (20µs+0) by DBIx::Class::Schema::load_namespaces at line 436 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Schema.pm
# once (19µs+0) by DBIx::Class::Schema::compose_namespace at line 591 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Schema.pm
# once (19µs+0) by DBIx::Class::Schema::BEGIN or DBIx::Class::Schema::compose_namespace at line 607 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Schema.pm
# once (19µs+0) by DBIx::Class::Relationship::Accessor::BEGIN or DBIx::Class::Relationship::Accessor::add_relationship_accessor at line 58 of /wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Relationship/Accessor.pm
# once (18µs+0) at line 59 of /wise/base/static/lib/perl5/site_perl/5.10.0/Class/Accessor/Grouped.pm
# once (17µs+0) by Text::ParseWords::BEGIN or Text::ParseWords::old_shellwords at line 132 of /opt/wise/lib/perl5/5.10.0/Text/ParseWords.pm | |||
377 | 140 | 0.00026 | 1.8e-6 | shift; |
378 | ||||
379 | my $catmask ; | |||
380 | my $mask = ${^WARNING_BITS} ; | |||
381 | ||||
382 | 34 | 4.5e-5 | 1.3e-6 | if (vec($mask, $Offsets{'all'}, 1)) { |
383 | $mask |= $Bits{'all'} ; | |||
384 | $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1); | |||
385 | } | |||
386 | ||||
387 | push @_, 'all' unless @_; | |||
388 | ||||
389 | foreach my $word ( @_ ) { | |||
390 | 20 | 9.3e-5 | 4.6e-6 | if ($word eq 'FATAL') { |
391 | next; | |||
392 | } | |||
393 | elsif ($catmask = $Bits{$word}) { | |||
394 | $mask &= ~($catmask | $DeadBits{$word} | $All); | |||
395 | } | |||
396 | else | |||
397 | { Croaker("Unknown warnings category '$word'")} | |||
398 | } | |||
399 | ||||
400 | ${^WARNING_BITS} = $mask ; | |||
401 | } | |||
402 | ||||
403 | 2 | 1.7e-5 | 8.5e-6 | my %builtin_type; @builtin_type{qw(SCALAR ARRAY HASH CODE REF GLOB LVALUE Regexp)} = (); |
404 | ||||
405 | sub __chk | |||
406 | { | |||
407 | my $category ; | |||
408 | my $offset ; | |||
409 | my $isobj = 0 ; | |||
410 | ||||
411 | if (@_) { | |||
412 | # check the category supplied. | |||
413 | $category = shift ; | |||
414 | if (my $type = ref $category) { | |||
415 | Croaker("not an object") | |||
416 | if exists $builtin_type{$type}; | |||
417 | $category = $type; | |||
418 | $isobj = 1 ; | |||
419 | } | |||
420 | $offset = $Offsets{$category}; | |||
421 | Croaker("Unknown warnings category '$category'") | |||
422 | unless defined $offset; | |||
423 | } | |||
424 | else { | |||
425 | $category = (caller(1))[0] ; | |||
426 | $offset = $Offsets{$category}; | |||
427 | Croaker("package '$category' not registered for warnings") | |||
428 | unless defined $offset ; | |||
429 | } | |||
430 | ||||
431 | my $this_pkg = (caller(1))[0] ; | |||
432 | my $i = 2 ; | |||
433 | my $pkg ; | |||
434 | ||||
435 | if ($isobj) { | |||
436 | while (do { { package DB; $pkg = (caller($i++))[0] } } ) { | |||
437 | last unless @DB::args && $DB::args[0] =~ /^$category=/ ; | |||
438 | } | |||
439 | $i -= 2 ; | |||
440 | } | |||
441 | else { | |||
442 | $i = _error_loc(); # see where Carp will allocate the error | |||
443 | } | |||
444 | ||||
445 | my $callers_bitmask = (caller($i))[9] ; | |||
446 | return ($callers_bitmask, $offset, $i) ; | |||
447 | } | |||
448 | ||||
449 | sub _error_loc { | |||
450 | require Carp::Heavy; | |||
451 | goto &Carp::short_error_loc; # don't introduce another stack frame | |||
452 | } | |||
453 | ||||
454 | sub enabled | |||
455 | { | |||
456 | Croaker("Usage: warnings::enabled([category])") | |||
457 | unless @_ == 1 || @_ == 0 ; | |||
458 | ||||
459 | my ($callers_bitmask, $offset, $i) = __chk(@_) ; | |||
460 | ||||
461 | return 0 unless defined $callers_bitmask ; | |||
462 | return vec($callers_bitmask, $offset, 1) || | |||
463 | vec($callers_bitmask, $Offsets{'all'}, 1) ; | |||
464 | } | |||
465 | ||||
466 | ||||
467 | sub warn | |||
468 | { | |||
469 | Croaker("Usage: warnings::warn([category,] 'message')") | |||
470 | unless @_ == 2 || @_ == 1 ; | |||
471 | ||||
472 | my $message = pop ; | |||
473 | my ($callers_bitmask, $offset, $i) = __chk(@_) ; | |||
474 | require Carp; | |||
475 | Carp::croak($message) | |||
476 | if vec($callers_bitmask, $offset+1, 1) || | |||
477 | vec($callers_bitmask, $Offsets{'all'}+1, 1) ; | |||
478 | Carp::carp($message) ; | |||
479 | } | |||
480 | ||||
481 | sub warnif | |||
482 | { | |||
483 | Croaker("Usage: warnings::warnif([category,] 'message')") | |||
484 | unless @_ == 2 || @_ == 1 ; | |||
485 | ||||
486 | my $message = pop ; | |||
487 | my ($callers_bitmask, $offset, $i) = __chk(@_) ; | |||
488 | ||||
489 | return | |||
490 | unless defined $callers_bitmask && | |||
491 | (vec($callers_bitmask, $offset, 1) || | |||
492 | vec($callers_bitmask, $Offsets{'all'}, 1)) ; | |||
493 | ||||
494 | require Carp; | |||
495 | Carp::croak($message) | |||
496 | if vec($callers_bitmask, $offset+1, 1) || | |||
497 | vec($callers_bitmask, $Offsets{'all'}+1, 1) ; | |||
498 | ||||
499 | Carp::carp($message) ; | |||
500 | } | |||
501 | ||||
502 | 1 | 4.6e-5 | 4.6e-5 | 1; |
503 | # ex: set ro: |