← Index
NYTProf Performance Profile   « line view »
For /home/ss5/perl5/perlbrew/perls/perl-5.22.0/bin/benchmarkanything-storage
  Run on Mon Jan 29 16:55:34 2018
Reported on Mon Jan 29 16:57:06 2018

Filename/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/5.22.0/warnings.pm
StatementsExecuted 2768 statements in 2.99ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
215179174909µs919µswarnings::::importwarnings::import
878763790µs790µswarnings::::unimportwarnings::unimport
611366µs401µswarnings::::register_categorieswarnings::register_categories
1311139µs526µswarnings::::__chkwarnings::__chk
122135µs35µswarnings::::_mkMaskwarnings::_mkMask
131123µs548µswarnings::::enabledwarnings::enabled
131118µs18µswarnings::::_error_locwarnings::_error_loc
11117µs17µswarnings::::CORE:regcompwarnings::CORE:regcomp (opcode)
11110µs10µswarnings::::_bitswarnings::_bits
1113µs3µswarnings::::CORE:matchwarnings::CORE:match (opcode)
0000s0swarnings::::Croakerwarnings::Croaker
0000s0swarnings::::bitswarnings::bits
0000s0swarnings::::fatal_enabledwarnings::fatal_enabled
0000s0swarnings::::warnwarnings::warn
0000s0swarnings::::warnifwarnings::warnif
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# -*- buffer-read-only: t -*-
2# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
3# This file is built by regen/warnings.pl.
4# Any changes made here will be lost!
5
6package warnings;
7
81300nsour $VERSION = '1.32';
9
10# Verify that we're called correctly so that warnings will work.
11# see also strict.pm.
12129µs219µsunless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) {
# spent 17µs making 1 call to warnings::CORE:regcomp # spent 3µs making 1 call to warnings::CORE:match
13 my (undef, $f, $l) = caller;
14 die("Incorrect use of pragma '${\__PACKAGE__}' at $f line $l.\n");
15}
16
17117µsour %Offsets = (
18 # Warnings Categories added in Perl 5.008
19 'all' => 0,
20 'closure' => 2,
21 'deprecated' => 4,
22 'exiting' => 6,
23 'glob' => 8,
24 'io' => 10,
25 'closed' => 12,
26 'exec' => 14,
27 'layer' => 16,
28 'newline' => 18,
29 'pipe' => 20,
30 'unopened' => 22,
31 'misc' => 24,
32 'numeric' => 26,
33 'once' => 28,
34 'overflow' => 30,
35 'pack' => 32,
36 'portable' => 34,
37 'recursion' => 36,
38 'redefine' => 38,
39 'regexp' => 40,
40 'severe' => 42,
41 'debugging' => 44,
42 'inplace' => 46,
43 'internal' => 48,
44 'malloc' => 50,
45 'signal' => 52,
46 'substr' => 54,
47 'syntax' => 56,
48 'ambiguous' => 58,
49 'bareword' => 60,
50 'digit' => 62,
51 'parenthesis' => 64,
52 'precedence' => 66,
53 'printf' => 68,
54 'prototype' => 70,
55 'qw' => 72,
56 'reserved' => 74,
57 'semicolon' => 76,
58 'taint' => 78,
59 'threads' => 80,
60 'uninitialized' => 82,
61 'unpack' => 84,
62 'untie' => 86,
63 'utf8' => 88,
64 'void' => 90,
65
66 # Warnings Categories added in Perl 5.011
67 'imprecision' => 92,
68 'illegalproto' => 94,
69
70 # Warnings Categories added in Perl 5.013
71 'non_unicode' => 96,
72 'nonchar' => 98,
73 'surrogate' => 100,
74
75 # Warnings Categories added in Perl 5.017
76 'experimental' => 102,
77 'experimental::lexical_subs' => 104,
78 'experimental::lexical_topic' => 106,
79 'experimental::regex_sets' => 108,
80 'experimental::smartmatch' => 110,
81
82 # Warnings Categories added in Perl 5.019
83 'experimental::autoderef' => 112,
84 'experimental::postderef' => 114,
85 'experimental::signatures' => 116,
86 'syscalls' => 118,
87
88 # Warnings Categories added in Perl 5.021
89 'experimental::bitwise' => 120,
90 'experimental::const_attr' => 122,
91 'experimental::re_strict' => 124,
92 'experimental::refaliasing' => 126,
93 'experimental::win32_perlio' => 128,
94 'locale' => 130,
95 'missing' => 132,
96 'redundant' => 134,
97);
98
99115µsour %Bits = (
100 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..67]
101 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29]
102 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30]
103 'closed' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
104 'closure' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
105 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
106 'deprecated' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
107 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
108 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
109 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
110 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x15\x55\x01", # [51..58,60..64]
111 'experimental::autoderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [56]
112 'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [60]
113 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [61]
114 'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [52]
115 'experimental::lexical_topic' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [53]
116 'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [57]
117 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [62]
118 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [63]
119 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [54]
120 'experimental::signatures' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [58]
121 'experimental::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [55]
122 'experimental::win32_perlio' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [64]
123 'glob' => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
124 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [47]
125 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [46]
126 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
127 'internal' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
128 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [5..11,59]
129 'layer' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
130 'locale' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [65]
131 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
132 'misc' => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
133 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [66]
134 'newline' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
135 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [48]
136 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [49]
137 'numeric' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
138 'once' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
139 'overflow' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
140 'pack' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
141 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [32]
142 'pipe' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
143 'portable' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
144 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [33]
145 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [34]
146 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [35]
147 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [36]
148 'recursion' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
149 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
150 'redundant' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [67]
151 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
152 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [37]
153 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [38]
154 'severe' => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
155 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
156 'substr' => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
157 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [50]
158 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00\x00", # [28..38,47]
159 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [59]
160 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [39]
161 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [40]
162 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [41]
163 'unopened' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
164 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [42]
165 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [43]
166 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00\x00\x00\x00", # [44,48..50]
167 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [45]
168);
169
170112µsour %DeadBits = (
171 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", # [0..67]
172 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29]
173 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30]
174 'closed' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
175 'closure' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
176 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
177 'deprecated' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
178 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
179 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
180 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
181 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\x2a\xaa\x02", # [51..58,60..64]
182 'experimental::autoderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [56]
183 'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [60]
184 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [61]
185 'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [52]
186 'experimental::lexical_topic' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [53]
187 'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [57]
188 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [62]
189 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [63]
190 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [54]
191 'experimental::signatures' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [58]
192 'experimental::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [55]
193 'experimental::win32_perlio' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [64]
194 'glob' => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
195 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [47]
196 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [46]
197 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
198 'internal' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
199 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [5..11,59]
200 'layer' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
201 'locale' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [65]
202 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
203 'misc' => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
204 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [66]
205 'newline' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
206 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [48]
207 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [49]
208 'numeric' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
209 'once' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
210 'overflow' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
211 'pack' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
212 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [32]
213 'pipe' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
214 'portable' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
215 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [33]
216 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [34]
217 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [35]
218 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [36]
219 'recursion' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
220 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
221 'redundant' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [67]
222 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
223 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [37]
224 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [38]
225 'severe' => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
226 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
227 'substr' => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
228 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [50]
229 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00\x00", # [28..38,47]
230 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [59]
231 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [39]
232 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [40]
233 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [41]
234 'unopened' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
235 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [42]
236 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [43]
237 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00\x00\x00\x00", # [44,48..50]
238 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [45]
239);
240
241# These are used by various things, including our own tests
2421200nsour $NONE = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
2431200nsour $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x15\x55\x05", # [2,56,60,61,52,53,57,62,63,54,58,55,64,4,65,22,23,25]
244our $LAST_BIT = 136 ;
24510sour $BYTES = 17 ;
246
24723µsour $All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
248
249sub Croaker
250{
251 require Carp; # this initializes %CarpInternal
252 local $Carp::CarpInternal{'warnings'};
253 delete $Carp::CarpInternal{'warnings'};
254 Carp::croak(@_);
255}
256
257
# spent 10µs within warnings::_bits which was called: # once (10µs+0s) by warnings::import at line 306
sub _bits {
2581300ns my $mask = shift ;
2591200ns my $catmask ;
26011µs my $fatal = 0 ;
2611300ns my $no_fatal = 0 ;
262
26311µs foreach my $word ( @_ ) {
26423µs if ($word eq 'FATAL') {
2651300ns $fatal = 1;
2661200ns $no_fatal = 0;
267 }
268 elsif ($word eq 'NONFATAL') {
269 $fatal = 0;
270 $no_fatal = 1;
271 }
272 elsif ($catmask = $Bits{$word}) {
2731700ns $mask |= $catmask ;
27411µs $mask |= $DeadBits{$word} if $fatal ;
2751200ns $mask &= ~($DeadBits{$word}|$All) if $no_fatal ;
276 }
277 else
278 { Croaker("Unknown warnings category '$word'")}
279 }
280
28113µs return $mask ;
282}
283
284sub bits
285{
286 # called from B::Deparse.pm
287 push @_, 'all' unless @_ ;
288 return _bits(undef, @_) ;
289}
290
291sub import
292
# spent 919µs (909+10) within warnings::import which was called 215 times, avg 4µs/call: # 13 times (42µs+0s) by Moo::_strictures::import at line 14 of Moo/_strictures.pm, avg 3µs/call # 12 times (53µs+0s) by Moo::import at line 26 of Moo.pm, avg 4µs/call # 12 times (47µs+0s) by Moo::Role::import at line 37 of Moo/Role.pm, avg 4µs/call # 2 times (14µs+0s) by Moose::Util::TypeConstraints::import or Moose::import at line 475 of Moose/Exporter.pm, avg 7µs/call # 2 times (10µs+0s) by Moose::Exporter::import at line 792 of Moose/Exporter.pm, avg 5µs/call # once (23µs+0s) by HTTP::Tiny::Handle::BEGIN@863 at line 863 of HTTP/Tiny.pm # once (10µs+10µs) by JSON::MaybeXS::BEGIN@4 at line 4 of JSON/MaybeXS.pm # once (14µs+0s) by Moose::Meta::TypeConstraint::Class::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Class.pm # once (14µs+0s) by CHI::BEGIN@2 at line 2 of String/RewritePrefix.pm # once (13µs+0s) by overloading::BEGIN@2 at line 2 of overloading.pm # once (11µs+0s) by Encode::Config::BEGIN@8 at line 8 of Encode/Config.pm # once (11µs+0s) by Sereal::Decoder::BEGIN@4 at line 4 of Sereal/Decoder.pm # once (10µs+0s) by Data::OptList::BEGIN@2 at line 2 of Sub/Install.pm # once (10µs+0s) by Moose::Util::MetaRole::BEGIN@5 at line 5 of Moose/Util/MetaRole.pm # once (10µs+0s) by main::BEGIN@3 at line 3 of BenchmarkAnything/Storage/Frontend/Lib.pm # once (9µs+0s) by Moose::Meta::TypeConstraint::Union::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Union.pm # once (8µs+0s) by Module::Implementation::BEGIN@6 at line 6 of Module/Implementation.pm # once (8µs+0s) by List::MoreUtils::BEGIN@5 at line 5 of List/MoreUtils.pm # once (8µs+0s) by Moose::Meta::Role::Application::BEGIN@5 at line 5 of Moose/Meta/Role/Application.pm # once (8µs+0s) by BenchmarkAnything::Storage::Frontend::Lib::BEGIN@3 at line 3 of BenchmarkAnything/Config.pm # once (8µs+0s) by Class::MOP::Attribute::BEGIN@5 at line 5 of Class/MOP/Attribute.pm # once (7µs+0s) by Moose::Meta::Instance::BEGIN@5 at line 5 of Moose/Meta/Instance.pm # once (7µs+0s) by Class::Load::XS::BEGIN@6 at line 6 of Class/Load/XS.pm # once (7µs+0s) by Moose::Meta::Role::BEGIN@5 at line 5 of Moose/Meta/Role.pm # once (7µs+0s) by Moose::Util::TypeConstraints::Builtins::BEGIN@5 at line 5 of Moose/Util/TypeConstraints/Builtins.pm # once (7µs+0s) by Moose::Meta::Mixin::AttributeCore::BEGIN@5 at line 5 of Moose/Meta/Mixin/AttributeCore.pm # once (7µs+0s) by Moose::Exporter::BEGIN@5 at line 5 of Moose/Exporter.pm # once (7µs+0s) by Moose::Meta::Role::Composite::BEGIN@5 at line 5 of Moose/Meta/Role/Composite.pm # once (7µs+0s) by BenchmarkAnything::Config::BEGIN@1.27 at line 1 of YAML/Any.pm # once (7µs+0s) by BenchmarkAnything::Storage::Backend::SQL::BEGIN@10 at line 10 of BenchmarkAnything/Storage/Backend/SQL.pm # once (7µs+0s) by Class::MOP::Deprecated::BEGIN@5 at line 5 of Class/MOP/Deprecated.pm # once (6µs+0s) by Moose::Meta::TypeConstraint::Parameterized::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Parameterized.pm # once (6µs+0s) by BenchmarkAnything::Storage::Search::Elasticsearch::BEGIN@9 at line 9 of BenchmarkAnything/Storage/Search/Elasticsearch.pm # once (6µs+0s) by re::BEGIN@5 at line 5 of re.pm # once (6µs+0s) by Class::MOP::Mixin::AttributeCore::BEGIN@5 at line 5 of Class/MOP/Mixin/AttributeCore.pm # once (6µs+0s) by Moose::Meta::TypeCoercion::Union::BEGIN@5 at line 5 of Moose/Meta/TypeCoercion/Union.pm # once (6µs+0s) by Moose::Meta::TypeConstraint::Role::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Role.pm # once (6µs+0s) by Moose::Meta::Method::Accessor::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor.pm # once (6µs+0s) by DBIx::MultiStatementDo::BEGIN@2 at line 2 of Moose.pm # once (6µs+0s) by Sub::Name::BEGIN@54 at line 54 of Sub/Name.pm # once (6µs+0s) by Class::MOP::Method::Generated::BEGIN@5 at line 5 of Class/MOP/Method/Generated.pm # once (6µs+0s) by IO::Socket::IP::BEGIN@14 at line 14 of IO/Socket/IP.pm # once (5µs+0s) by SQL::SplitStatement::BEGIN@9 at line 9 of SQL/SplitStatement.pm # once (5µs+0s) by IO::Uncompress::Adapter::Inflate::BEGIN@4 at line 4 of IO/Uncompress/Adapter/Inflate.pm # once (5µs+0s) by CHI::Stats::BEGIN@8 at line 8 of CHI/Stats.pm # once (5µs+0s) by Moose::Meta::TypeConstraint::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint.pm # once (5µs+0s) by Moose::Meta::TypeConstraint::Enum::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Enum.pm # once (5µs+0s) by main::BEGIN@7 at line 7 of /home/ss5/perl5/perlbrew/perls/perl-5.22.0/bin/benchmarkanything-storage # once (5µs+0s) by App::Rad::Help::BEGIN@4 at line 4 of App/Rad/Help.pm # once (5µs+0s) by Package::Stash::BEGIN@7 at line 7 of Package/Stash.pm # once (5µs+0s) by IO::Compress::Base::Common::BEGIN@522 at line 522 of IO/Compress/Base/Common.pm # once (5µs+0s) by List::MoreUtils::XS::BEGIN@5 at line 5 of List/MoreUtils/XS.pm # once (5µs+0s) by Class::MOP::Class::Immutable::Trait::BEGIN@5 at line 5 of Class/MOP/Class/Immutable/Trait.pm # once (5µs+0s) by Moose::BEGIN@2 at line 2 of Class/Load.pm # once (4µs+0s) by Class::MOP::Method::Constructor::BEGIN@5 at line 5 of Class/MOP/Method/Constructor.pm # once (4µs+0s) by Class::MOP::Mixin::HasOverloads::BEGIN@5 at line 5 of Class/MOP/Mixin/HasOverloads.pm # once (4µs+0s) by Package::Stash::XS::BEGIN@9 at line 9 of Package/Stash/XS.pm # once (4µs+0s) by Moose::Meta::TypeCoercion::BEGIN@5 at line 5 of Moose/Meta/TypeCoercion.pm # once (4µs+0s) by Attribute::Handlers::BEGIN@4 at line 4 of Attribute/Handlers.pm # once (4µs+0s) by Moose::Meta::Role::Application::RoleSummation::BEGIN@5 at line 5 of Moose/Meta/Role/Application/RoleSummation.pm # once (4µs+0s) by File::Which::BEGIN@4 at line 4 of File/Which.pm # once (4µs+0s) by namespace::clean::BEGIN@3 at line 3 of namespace/clean.pm # once (4µs+0s) by URI::http::BEGIN@4 at line 4 of URI/http.pm # once (4µs+0s) by List::MoreUtils::PP::BEGIN@5 at line 5 of List/MoreUtils/PP.pm # once (4µs+0s) by Moose::Meta::TypeConstraint::Parameterizable::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Parameterizable.pm # once (4µs+0s) by Encode::Alias::BEGIN@3 at line 3 of Encode/Alias.pm # once (4µs+0s) by Moose::Util::BEGIN@5 at line 5 of Moose/Util.pm # once (4µs+0s) by IO::Compress::Gzip::BEGIN@6 at line 6 of IO/Compress/Gzip.pm # once (4µs+0s) by Class::Load::BEGIN@2 at line 2 of Data/OptList.pm # once (4µs+0s) by Package::DeprecationManager::BEGIN@4 at line 4 of Package/DeprecationManager.pm # once (4µs+0s) by Moose::Meta::TypeCoercion::BEGIN@2 at line 2 of Moose/Meta/Attribute.pm # once (4µs+0s) by Config::BEGIN@10 at line 10 of Config.pm # once (4µs+0s) by Class::MOP::Object::BEGIN@5 at line 5 of Class/MOP/Object.pm # once (4µs+0s) by SQL::Tokenizer::BEGIN@3 at line 3 of SQL/Tokenizer.pm # once (4µs+0s) by App::Rad::BEGIN@5 at line 5 of App/Rad.pm # once (4µs+0s) by Moose::Meta::TypeConstraint::DuckType::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/DuckType.pm # once (4µs+0s) by Class::MOP::Method::Meta::BEGIN@5 at line 5 of Class/MOP/Method/Meta.pm # once (3µs+0s) by Time::Duration::Parse::BEGIN@5 at line 5 of Time/Duration/Parse.pm # once (3µs+0s) by namespace::clean::_Util::BEGIN@12 at line 12 of namespace/clean/_Util.pm # once (3µs+0s) by Moose::Meta::Method::Delegation::BEGIN@5 at line 5 of Moose/Meta/Method/Delegation.pm # once (3µs+0s) by Class::MOP::Mixin::HasAttributes::BEGIN@5 at line 5 of Class/MOP/Mixin/HasAttributes.pm # once (3µs+0s) by Class::MOP::Class::BEGIN@5 at line 5 of Class/MOP/Class.pm # once (3µs+0s) by Moose::Meta::Method::Meta::BEGIN@5 at line 5 of Moose/Meta/Method/Meta.pm # once (3µs+0s) by Moose::Meta::Method::Augmented::BEGIN@5 at line 5 of Moose/Meta/Method/Augmented.pm # once (3µs+0s) by Devel::OverloadInfo::BEGIN@15 at line 15 of Devel/OverloadInfo.pm # once (3µs+0s) by Class::MOP::MiniTrait::BEGIN@5 at line 5 of Class/MOP/MiniTrait.pm # once (3µs+0s) by Class::MOP::Mixin::HasMethods::BEGIN@5 at line 5 of Class/MOP/Mixin/HasMethods.pm # once (3µs+0s) by Class::MOP::BEGIN@5 at line 5 of Class/MOP.pm # once (3µs+0s) by List::Util::BEGIN@10 at line 10 of List/Util.pm # once (3µs+0s) by Moose::Meta::TypeConstraint::Registry::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Registry.pm # once (3µs+0s) by Moose::Meta::Role::Attribute::BEGIN@5 at line 5 of Moose/Meta/Role/Attribute.pm # once (3µs+0s) by CHI::Stats::BEGIN@3.30 at line 3 of Log/Any.pm # once (3µs+0s) by Class::MOP::Method::Accessor::BEGIN@5 at line 5 of Class/MOP/Method/Accessor.pm # once (3µs+0s) by Moose::Meta::Role::Method::BEGIN@5 at line 5 of Moose/Meta/Role/Method.pm # once (3µs+0s) by Try::Tiny::BEGIN@8 at line 8 of Try/Tiny.pm # once (3µs+0s) by IO::Compress::Zlib::Constants::BEGIN@5 at line 5 of IO/Compress/Zlib/Constants.pm # once (3µs+0s) by Encode::BEGIN@6 at line 6 of Encode.pm # once (3µs+0s) by Module::Load::BEGIN@6 at line 6 of Module/Load.pm # once (3µs+0s) by Moose::Meta::Role::Method::Required::BEGIN@5 at line 5 of Moose/Meta/Role/Method/Required.pm # once (3µs+0s) by IO::Compress::Adapter::Deflate::BEGIN@4 at line 4 of IO/Compress/Adapter/Deflate.pm # once (3µs+0s) by Moose::Meta::Class::Immutable::Trait::BEGIN@5 at line 5 of Moose/Meta/Class/Immutable/Trait.pm # once (3µs+0s) by Moose::Deprecated::BEGIN@5 at line 5 of Moose/Deprecated.pm # once (3µs+0s) by Moo::Role::BEGIN@2 at line 2 of Class/Method/Modifiers.pm # once (3µs+0s) by DBI::_firesafe::BEGIN@4 at line 4 of DBD/mysql.pm # once (3µs+0s) by Class::XSAccessor::BEGIN@4 at line 4 of Class/XSAccessor.pm # once (3µs+0s) by CHI::BEGIN@10 at line 10 of CHI.pm # once (3µs+0s) by POSIX::BEGIN@3 at line 3 of POSIX.pm # once (3µs+0s) by Class::MOP::Mixin::BEGIN@5 at line 5 of Class/MOP/Mixin.pm # once (3µs+0s) by Moose::Meta::Method::Constructor::BEGIN@5 at line 5 of Moose/Meta/Method/Constructor.pm # once (3µs+0s) by Moose::BEGIN@2.26 at line 2 of Moose/Meta/Attribute/Native.pm # once (3µs+0s) by Moose::Object::BEGIN@5 at line 5 of Moose/Object.pm # once (3µs+0s) by IO::Uncompress::Gunzip::BEGIN@9 at line 9 of IO/Uncompress/Gunzip.pm # once (3µs+0s) by Carp::BEGIN@5 at line 5 of Carp.pm # once (3µs+0s) by Regexp::Common::BEGIN@18 at line 18 of Regexp/Common.pm # once (3µs+0s) by Moose::Meta::Method::Destructor::BEGIN@5 at line 5 of Moose/Meta/Method/Destructor.pm # once (3µs+0s) by Encode::Encoding::BEGIN@5 at line 5 of Encode/Encoding.pm # once (3µs+0s) by IO::Compress::Deflate::BEGIN@6 at line 6 of IO/Compress/Deflate.pm # once (3µs+0s) by Log::Any::BEGIN@3.33 at line 3 of Log/Any/Adapter/Util.pm # once (3µs+0s) by Moose::Meta::Class::BEGIN@5 at line 5 of Moose/Meta/Class.pm # once (3µs+0s) by YAML::Any::BEGIN@1.28 at line 1 of YAML/XS.pm # once (3µs+0s) by Class::XSAccessor::Heavy::BEGIN@6 at line 6 of Class/XSAccessor/Heavy.pm # once (3µs+0s) by Class::MOP::Method::BEGIN@5 at line 5 of Class/MOP/Method.pm # once (3µs+0s) by Class::MOP::Module::BEGIN@5 at line 5 of Class/MOP/Module.pm # once (3µs+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::mysql::BEGIN@6 at line 6 of BenchmarkAnything/Storage/Backend/SQL/Query/mysql.pm # once (3µs+0s) by Moose::Meta::Role::Application::ToInstance::BEGIN@5 at line 5 of Moose/Meta/Role/Application/ToInstance.pm # once (3µs+0s) by IO::Compress::Gzip::Constants::BEGIN@4 at line 4 of IO/Compress/Gzip/Constants.pm # once (3µs+0s) by Search::Elasticsearch::Logger::LogAny::BEGIN@3.35 at line 3 of Log/Any/Adapter.pm # once (3µs+0s) by Moose::Meta::Method::Overridden::BEGIN@5 at line 5 of Moose/Meta/Method/Overridden.pm # once (3µs+0s) by Class::MOP::Method::Inlined::BEGIN@5 at line 5 of Class/MOP/Method/Inlined.pm # once (3µs+0s) by Log::Any::Adapter::Util::BEGIN@3 at line 3 of Log/Any/Proxy.pm # once (3µs+0s) by Sub::Util::BEGIN@8 at line 8 of Sub/Util.pm # once (3µs+0s) by Moo::_strictures::BEGIN@3 at line 3 of Moo/_strictures.pm # once (3µs+0s) by Class::MOP::Method::Wrapped::BEGIN@5 at line 5 of Class/MOP/Method/Wrapped.pm # once (3µs+0s) by IO::Compress::Zlib::Extra::BEGIN@6 at line 6 of IO/Compress/Zlib/Extra.pm # once (3µs+0s) by Moose::Meta::Role::Application::ToRole::BEGIN@5 at line 5 of Moose/Meta/Role/Application/ToRole.pm # once (3µs+0s) by IO::Uncompress::Inflate::BEGIN@5 at line 5 of IO/Uncompress/Inflate.pm # once (3µs+0s) by Log::Any::Manager::BEGIN@3 at line 3 of Log/Any/Adapter/Null.pm # once (3µs+0s) by URI::BEGIN@4 at line 4 of URI.pm # once (3µs+0s) by Moose::Util::BEGIN@3 at line 3 of Sub/Exporter.pm # once (3µs+0s) by Moose::Meta::Role::Application::ToClass::BEGIN@5 at line 5 of Moose/Meta/Role/Application/ToClass.pm # once (3µs+0s) by Moose::Meta::Role::Method::Conflicting::BEGIN@5 at line 5 of Moose/Meta/Role/Method/Conflicting.pm # once (3µs+0s) by Compress::Raw::Zlib::BEGIN@9 at line 9 of Compress/Raw/Zlib.pm # once (3µs+0s) by IO::Uncompress::RawInflate::BEGIN@5 at line 5 of IO/Uncompress/RawInflate.pm # once (3µs+0s) by Exporter::Lite::BEGIN@4 at line 4 of Exporter/Lite.pm # once (3µs+0s) by Regexp::Common::delimited::BEGIN@6 at line 6 of Regexp/Common/delimited.pm # once (3µs+0s) by IO::BEGIN@8 at line 8 of IO.pm # once (3µs+0s) by Role::Tiny::BEGIN@7 at line 7 of Role/Tiny.pm # once (3µs+0s) by YAML::XS::LibYAML::BEGIN@4 at line 4 of YAML/XS/LibYAML.pm # once (3µs+0s) by mro::BEGIN@11 at line 11 of mro.pm # once (3µs+0s) by Any::URI::Escape::BEGIN@4 at line 4 of Any/URI/Escape.pm # once (3µs+0s) by URI::_server::BEGIN@4 at line 4 of URI/_server.pm # once (3µs+0s) by Exporter::Tiny::BEGIN@5 at line 5 of Exporter/Tiny.pm # once (3µs+0s) by B::Hooks::EndOfScope::XS::BEGIN@5 at line 5 of B/Hooks/EndOfScope/XS.pm # once (3µs+0s) by IO::Uncompress::Base::BEGIN@5 at line 5 of IO/Uncompress/Base.pm # once (3µs+0s) by CHI::Util::BEGIN@13 at line 13 of CHI/Util.pm # once (3µs+0s) by HTTP::Tiny::BEGIN@4 at line 4 of HTTP/Tiny.pm # once (2µs+0s) by Log::Any::BEGIN@3 at line 3 of Log/Any/Manager.pm # once (2µs+0s) by Moose::Meta::Method::BEGIN@5 at line 5 of Moose/Meta/Method.pm # once (2µs+0s) by B::Hooks::EndOfScope::BEGIN@6 at line 6 of B/Hooks/EndOfScope.pm # once (2µs+0s) by Scalar::Util::BEGIN@10 at line 10 of Scalar/Util.pm # once (2µs+0s) by MRO::Compat::BEGIN@3 at line 3 of MRO/Compat.pm # once (2µs+0s) by Class::MOP::Instance::BEGIN@5 at line 5 of Class/MOP/Instance.pm # once (2µs+0s) by Eval::Closure::BEGIN@7 at line 7 of Eval/Closure.pm # once (2µs+0s) by IO::Compress::RawDeflate::BEGIN@6 at line 6 of IO/Compress/RawDeflate.pm # once (2µs+0s) by File::GlobMapper::BEGIN@4 at line 4 of File/GlobMapper.pm # once (2µs+0s) by Variable::Magic::BEGIN@6 at line 6 of Variable/Magic.pm # once (2µs+0s) by Class::MOP::Package::BEGIN@5 at line 5 of Class/MOP/Package.pm # once (2µs+0s) by Class::MOP::Overload::BEGIN@5 at line 5 of Class/MOP/Overload.pm # once (2µs+0s) by metaclass::BEGIN@5 at line 5 of metaclass.pm # once (2µs+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::common::BEGIN@6 at line 6 of BenchmarkAnything/Storage/Backend/SQL/Query/common.pm # once (2µs+0s) by URI::Escape::BEGIN@4 at line 4 of URI/Escape.pm # once (2µs+0s) by IO::Compress::Base::BEGIN@7 at line 7 of IO/Compress/Base.pm # once (2µs+0s) by base::BEGIN@3 at line 3 of Log/Any/Adapter/Base.pm # once (2µs+0s) by Devel::GlobalDestruction::BEGIN@4 at line 4 of Devel/GlobalDestruction.pm # once (2µs+0s) by BenchmarkAnything::Storage::Backend::SQL::Query::BEGIN@6 at line 6 of BenchmarkAnything/Storage/Backend/SQL/Query.pm # once (2µs+0s) by URI::_generic::BEGIN@4 at line 4 of URI/_generic.pm # once (2µs+0s) by IO::Compress::Base::Common::BEGIN@4 at line 4 of IO/Compress/Base/Common.pm # once (2µs+0s) by Sub::Exporter::Progressive::BEGIN@4 at line 4 of Sub/Exporter/Progressive.pm # once (2µs+0s) by URI::_query::BEGIN@4 at line 4 of URI/_query.pm
{
29321526µs shift;
294
295215250µs my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ;
296
297215143µs if (vec($mask, $Offsets{'all'}, 1)) {
29863µs $mask |= $Bits{'all'} ;
29966µs $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
300 }
301
302 # append 'all' when implied (after a lone "FATAL" or "NONFATAL")
30321579µs push @_, 'all' if @_==1 && ( $_[0] eq 'FATAL' || $_[0] eq 'NONFATAL' );
304
305 # Empty @_ is equivalent to @_ = 'all' ;
306215771µs110µs ${^WARNING_BITS} = @_ ? _bits($mask, @_) : $mask | $Bits{all} ;
# spent 10µs making 1 call to warnings::_bits
307}
308
309sub unimport
310
# spent 790µs within warnings::unimport which was called 87 times, avg 9µs/call: # once (28µs+0s) by Sub::Quote::BEGIN@4.44 at line 4 of (eval 285)[Sub/Quote.pm:3] # once (18µs+0s) by Exporter::Tiny::BEGIN@5.24 at line 5 of Exporter/Tiny.pm # once (18µs+0s) by Module::Implementation::BEGIN@129 at line 129 of Module/Implementation.pm # once (17µs+0s) by HTTP::Tiny::Handle::BEGIN@1418 at line 1418 of HTTP/Tiny.pm # once (16µs+0s) by BenchmarkAnything::Storage::Frontend::Lib::BEGIN@27 at line 27 of BenchmarkAnything/Storage/Frontend/Lib.pm # once (15µs+0s) by Encode::Alias::BEGIN@4 at line 4 of Encode/Alias.pm # once (14µs+0s) by MRO::Compat::BEGIN@39 at line 39 of MRO/Compat.pm # once (14µs+0s) by Moose::Util::TypeConstraints::BEGIN@674 at line 674 of Moose/Util/TypeConstraints.pm # once (14µs+0s) by Devel::GlobalDestruction::BEGIN@23 at line 23 of Devel/GlobalDestruction.pm # once (13µs+0s) by Log::Any::Manager::BEGIN@36 at line 36 of Log/Any/Manager.pm # once (13µs+0s) by IO::Uncompress::Base::BEGIN@428 at line 428 of IO/Uncompress/Base.pm # once (13µs+0s) by Moose::Exporter::BEGIN@136 at line 136 of Moose/Exporter.pm # once (13µs+0s) by Attribute::Handlers::BEGIN@219 at line 219 of Attribute/Handlers.pm # once (13µs+0s) by Sub::Quote::BEGIN@5.58 at line 5 of (eval 309)[Sub/Quote.pm:3] # once (12µs+0s) by main::BEGIN@1 at line 1 of (eval 2)[Attribute/Handlers.pm:222] # once (12µs+0s) by Sub::Quote::BEGIN@4.54 at line 4 of (eval 305)[Sub/Quote.pm:3] # once (12µs+0s) by Class::XSAccessor::Heavy::BEGIN@30 at line 30 of Class/XSAccessor/Heavy.pm # once (12µs+0s) by YAML::Any::BEGIN@49 at line 49 of YAML/Any.pm # once (12µs+0s) by Search::Elasticsearch::Role::Client::Direct::BEGIN@53 at line 53 of Search/Elasticsearch/Role/Client/Direct.pm # once (12µs+0s) by Sub::Quote::BEGIN@4.62 at line 4 of (eval 313)[Sub/Quote.pm:3] # once (12µs+0s) by Sub::Quote::BEGIN@4.50 at line 4 of (eval 292)[Sub/Quote.pm:3] # once (12µs+0s) by Class::Method::Modifiers::BEGIN@150 at line 150 of Class/Method/Modifiers.pm # once (12µs+0s) by B::Deparse::BEGIN@4514 at line 4514 of B/Deparse.pm # once (11µs+0s) by IO::Uncompress::Base::BEGIN@90 at line 90 of IO/Uncompress/Base.pm # once (11µs+0s) by MRO::Compat::BEGIN@228 at line 228 of MRO/Compat.pm # once (11µs+0s) by Sub::Quote::BEGIN@4.60 at line 4 of (eval 310)[Sub/Quote.pm:3] # once (11µs+0s) by Role::Tiny::BEGIN@366 at line 366 of Role/Tiny.pm # once (11µs+0s) by Sub::Quote::BEGIN@5.42 at line 5 of (eval 282)[Sub/Quote.pm:3] # once (10µs+0s) by Sub::Quote::BEGIN@4.52 at line 4 of (eval 304)[Sub/Quote.pm:3] # once (10µs+0s) by File::GlobMapper::BEGIN@341 at line 341 of File/GlobMapper.pm # once (10µs+0s) by Sub::Quote::BEGIN@4.36 at line 4 of (eval 242)[Sub/Quote.pm:3] # once (10µs+0s) by File::Glob::BEGIN@54 at line 54 of File/Glob.pm # once (10µs+0s) by Sub::Quote::BEGIN@5.34 at line 5 of (eval 237)[Sub/Quote.pm:3] # once (9µs+0s) by Carp::BEGIN@6 at line 24 of Carp.pm # once (9µs+0s) by Encode::BEGIN@266 at line 266 of Encode.pm # once (9µs+0s) by IO::Compress::Base::BEGIN@278 at line 278 of IO/Compress/Base.pm # once (8µs+0s) by Class::MOP::Package::BEGIN@95 at line 95 of Class/MOP/Package.pm # once (8µs+0s) by Sub::Quote::BEGIN@4 at line 4 of (eval 224)[Sub/Quote.pm:3] # once (8µs+0s) by BenchmarkAnything::Storage::Frontend::Lib::BEGIN@189 at line 189 of BenchmarkAnything/Storage/Frontend/Lib.pm # once (8µs+0s) by main::BEGIN@1.2 at line 1 of (eval 3)[Attribute/Handlers.pm:222] # once (8µs+0s) by Moo::sification::BEGIN@4 at line 4 of Moo/sification.pm # once (8µs+0s) by BenchmarkAnything::Storage::Frontend::Lib::BEGIN@275 at line 275 of BenchmarkAnything/Storage/Frontend/Lib.pm # once (8µs+0s) by Class::XSAccessor::BEGIN@84 at line 84 of Class/XSAccessor.pm # once (8µs+0s) by main::BEGIN@1.8 at line 1 of (eval 6)[Attribute/Handlers.pm:222] # once (8µs+0s) by U64::BEGIN@1038 at line 1038 of IO/Compress/Base/Common.pm # once (8µs+0s) by Exporter::Tiny::BEGIN@283 at line 283 of Exporter/Tiny.pm # once (8µs+0s) by Moo::_Utils::BEGIN@89 at line 89 of Moo/_Utils.pm # once (7µs+0s) by HTTP::Tiny::BEGIN@76 at line 76 of HTTP/Tiny.pm # once (7µs+0s) by main::BEGIN@1.20 at line 1 of (eval 12)[Attribute/Handlers.pm:222] # once (7µs+0s) by Role::Tiny::BEGIN@432 at line 432 of Role/Tiny.pm # once (7µs+0s) by main::BEGIN@1.6 at line 1 of (eval 5)[Attribute/Handlers.pm:222] # once (7µs+0s) by main::BEGIN@1.4 at line 1 of (eval 4)[Attribute/Handlers.pm:222] # once (7µs+0s) by Moo::Object::BEGIN@69 at line 69 of Moo/Object.pm # once (7µs+0s) by main::BEGIN@1.14 at line 1 of (eval 9)[Attribute/Handlers.pm:222] # once (7µs+0s) by Moo::BEGIN@112 at line 112 of Moo.pm # once (7µs+0s) by Sub::Defer::BEGIN@27 at line 27 of Sub/Defer.pm # once (7µs+0s) by main::BEGIN@1.12 at line 1 of (eval 8)[Attribute/Handlers.pm:222] # once (7µs+0s) by main::BEGIN@1.18 at line 1 of (eval 11)[Attribute/Handlers.pm:222] # once (7µs+0s) by Sub::Quote::BEGIN@4.38 at line 4 of (eval 245)[Sub/Quote.pm:3] # once (7µs+0s) by Log::Any::BEGIN@72 at line 72 of Log/Any.pm # once (7µs+0s) by main::BEGIN@1.10 at line 1 of (eval 7)[Attribute/Handlers.pm:222] # once (7µs+0s) by Exporter::Heavy::BEGIN@202 at line 202 of Exporter/Heavy.pm # once (6µs+0s) by Attribute::Handlers::BEGIN@240 at line 240 of Attribute/Handlers.pm # once (6µs+0s) by main::BEGIN@1.16 at line 1 of (eval 10)[Attribute/Handlers.pm:222] # once (6µs+0s) by Carp::BEGIN@602 at line 602 of Carp.pm # once (6µs+0s) by Moo::HandleMoose::BEGIN@3 at line 3 of Moo/HandleMoose.pm # once (6µs+0s) by Sub::Quote::BEGIN@6 at line 6 of (eval 283)[Sub/Quote.pm:3] # once (6µs+0s) by Sub::Quote::BEGIN@4.46 at line 4 of (eval 286)[Sub/Quote.pm:3] # once (6µs+0s) by CHI::BEGIN@35 at line 35 of CHI.pm # once (6µs+0s) by BenchmarkAnything::Storage::Frontend::Lib::BEGIN@36 at line 36 of BenchmarkAnything/Storage/Frontend/Lib.pm # once (6µs+0s) by Moo::HandleMoose::BEGIN@18 at line 18 of Moo/HandleMoose.pm # once (6µs+0s) by BenchmarkAnything::Storage::Frontend::Lib::BEGIN@51 at line 51 of BenchmarkAnything/Storage/Frontend/Lib.pm # once (6µs+0s) by Class::Method::Modifiers::BEGIN@204 at line 204 of Class/Method/Modifiers.pm # once (6µs+0s) by Sub::Quote::BEGIN@4.48 at line 4 of (eval 287)[Sub/Quote.pm:3] # once (6µs+0s) by Moo::HandleMoose::BEGIN@216 at line 216 of Moo/HandleMoose.pm # once (6µs+0s) by Moose::Util::TypeConstraints::BEGIN@680 at line 680 of Moose/Util/TypeConstraints.pm # once (6µs+0s) by Sub::Quote::BEGIN@4.40 at line 4 of (eval 266)[Sub/Quote.pm:3] # once (6µs+0s) by Sub::Quote::BEGIN@4.56 at line 4 of (eval 306)[Sub/Quote.pm:3] # once (6µs+0s) by BenchmarkAnything::Storage::Frontend::Lib::BEGIN@66 at line 66 of BenchmarkAnything/Storage/Frontend/Lib.pm # once (6µs+0s) by YAML::Any::BEGIN@62 at line 62 of YAML/Any.pm # once (5µs+0s) by Moose::Util::TypeConstraints::BEGIN@685 at line 685 of Moose/Util/TypeConstraints.pm # once (5µs+0s) by Moose::Util::TypeConstraints::BEGIN@699 at line 699 of Moose/Util/TypeConstraints.pm # once (5µs+0s) by YAML::Any::BEGIN@75 at line 75 of YAML/Any.pm # once (5µs+0s) by Moo::_Utils::BEGIN@3 at line 3 of Moo/_Utils.pm # once (5µs+0s) by YAML::Any::BEGIN@88 at line 88 of YAML/Any.pm # once (4µs+0s) by Moo::_Utils::BEGIN@96 at line 96 of Moo/_Utils.pm # once (4µs+0s) by Class::Method::Modifiers::BEGIN@151 at line 151 of Class/Method/Modifiers.pm
{
3118715µs shift;
312
3138715µs my $catmask ;
31487140µs my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ;
315
3168777µs if (vec($mask, $Offsets{'all'}, 1)) {
3174922µs $mask |= $Bits{'all'} ;
3184932µs $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
319 }
320
321 # append 'all' when implied (empty import list or after a lone "FATAL")
3228782µs push @_, 'all' if !@_ || @_==1 && $_[0] eq 'FATAL';
323
3248763µs foreach my $word ( @_ ) {
32591220µs if ($word eq 'FATAL') {
326 next;
327 }
328 elsif ($catmask = $Bits{$word}) {
329 $mask &= ~($catmask | $DeadBits{$word} | $All);
330 }
331 else
332 { Croaker("Unknown warnings category '$word'")}
333 }
334
33587348µs ${^WARNING_BITS} = $mask ;
336}
337
33822µsmy %builtin_type; @builtin_type{qw(SCALAR ARRAY HASH CODE REF GLOB LVALUE Regexp)} = ();
339
340sub MESSAGE () { 4 };
341sub FATAL () { 2 };
342sub NORMAL () { 1 };
343
344sub __chk
345
# spent 526µs (139+387) within warnings::__chk which was called 13 times, avg 40µs/call: # 13 times (139µs+387µs) by warnings::enabled at line 456, avg 40µs/call
{
346132µs my $category ;
347 my $offset ;
348132µs my $isobj = 0 ;
349133µs my $wanted = shift;
350134µs my $has_message = $wanted & MESSAGE;
351
352133µs unless (@_ == 1 || @_ == ($has_message ? 2 : 0)) {
353 my $sub = (caller 1)[3];
354 my $syntax = $has_message ? "[category,] 'message'" : '[category]';
355 Croaker("Usage: $sub($syntax)");
356 }
357
358132µs my $message = pop if $has_message;
359
360134µs if (@_) {
361 # check the category supplied.
362132µs $category = shift ;
363134µs if (my $type = ref $category) {
364 Croaker("not an object")
365 if exists $builtin_type{$type};
366 $category = $type;
367 $isobj = 1 ;
368 }
369134µs $offset = $Offsets{$category};
370133µs Croaker("Unknown warnings category '$category'")
371 unless defined $offset;
372 }
373 else {
374 $category = (caller(1))[0] ;
375 $offset = $Offsets{$category};
376 Croaker("package '$category' not registered for warnings")
377 unless defined $offset ;
378 }
379
380131µs my $i;
381
382133µs if ($isobj) {
383 my $pkg;
384 $i = 2;
385 while (do { { package DB; $pkg = (caller($i++))[0] } } ) {
386 last unless @DB::args && $DB::args[0] =~ /^$category=/ ;
387 }
388 $i -= 2 ;
389 }
390 else {
391139µs1318µs $i = _error_loc(); # see where Carp will allocate the error
# spent 18µs making 13 calls to warnings::_error_loc, avg 1µs/call
392 }
393
394 # Default to 0 if caller returns nothing. Default to $DEFAULT if it
395 # explicitly returns undef.
3961329µs my(@callers_bitmask) = (caller($i))[9] ;
397135µs my $callers_bitmask =
398 @callers_bitmask ? $callers_bitmask[0] // $DEFAULT : 0 ;
399
40013900ns my @results;
401137µs foreach my $type (FATAL, NORMAL) {
402265µs next unless $wanted & $type;
403
404 push @results, (vec($callers_bitmask, $offset + $type - 1, 1) ||
405139µs vec($callers_bitmask, $Offsets{'all'} + $type - 1, 1));
406 }
407
408 # &enabled and &fatal_enabled
4091319µs return $results[0] unless $has_message;
410
411 # &warnif, and the category is neither enabled as warning nor as fatal
412 return if $wanted == (NORMAL | FATAL | MESSAGE)
413 && !($results[0] || $results[1]);
414
415 require Carp;
416 Carp::croak($message) if $results[0];
417 # will always get here for &warn. will only get here for &warnif if the
418 # category is enabled
419 Carp::carp($message);
420}
421
422sub _mkMask
423
# spent 35µs within warnings::_mkMask which was called 12 times, avg 3µs/call: # 6 times (28µs+0s) by warnings::register_categories at line 437, avg 5µs/call # 6 times (8µs+0s) by warnings::register_categories at line 443, avg 1µs/call
{
424124µs my ($bit) = @_;
425124µs my $mask = "";
426
4271216µs vec($mask, $bit, 1) = 1;
4281226µs return $mask;
429}
430
431sub register_categories
432
# spent 401µs (366+35) within warnings::register_categories which was called 6 times, avg 67µs/call: # 6 times (366µs+35µs) by warnings::register::import at line 23 of warnings/register.pm, avg 67µs/call
{
43364µs my @names = @_;
434
435616µs for my $name (@names) {
43667µs if (! defined $Bits{$name}) {
437614µs628µs $Bits{$name} = _mkMask($LAST_BIT);
# spent 28µs making 6 calls to warnings::_mkMask, avg 5µs/call
43869µs vec($Bits{'all'}, $LAST_BIT, 1) = 1;
43966µs $Offsets{$name} = $LAST_BIT ++;
440674µs foreach my $k (keys %Bits) {
441429212µs vec($Bits{$k}, $LAST_BIT, 1) = 0;
442 }
44368µs68µs $DeadBits{$name} = _mkMask($LAST_BIT);
# spent 8µs making 6 calls to warnings::_mkMask, avg 1µs/call
44465µs vec($DeadBits{'all'}, $LAST_BIT++, 1) = 1;
445 }
446 }
447}
448
449
# spent 18µs within warnings::_error_loc which was called 13 times, avg 1µs/call: # 13 times (18µs+0s) by warnings::__chk at line 391, avg 1µs/call
sub _error_loc {
450133µs require Carp;
4511333µs13368µs goto &Carp::short_error_loc; # don't introduce another stack frame
# spent 368µs making 13 calls to Carp::short_error_loc, avg 28µs/call
452}
453
454sub enabled
455
# spent 548µs (23+526) within warnings::enabled which was called 13 times, avg 42µs/call: # 13 times (23µs+526µs) by attributes::import at line 71 of attributes.pm, avg 42µs/call
{
4561323µs13526µs return __chk(NORMAL, @_);
# spent 526µs making 13 calls to warnings::__chk, avg 40µs/call
457}
458
459sub fatal_enabled
460{
461 return __chk(FATAL, @_);
462}
463
464sub warn
465{
466 return __chk(FATAL | MESSAGE, @_);
467}
468
469sub warnif
470{
471 return __chk(NORMAL | FATAL | MESSAGE, @_);
472}
473
474# These are not part of any public interface, so we can delete them to save
475# space.
47614µsdelete @warnings::{qw(NORMAL FATAL MESSAGE)};
477
478123µs1;
479__END__
 
# spent 3µs within warnings::CORE:match which was called: # once (3µs+0s) by main::BEGIN@7 at line 12
sub warnings::CORE:match; # opcode
# spent 17µs within warnings::CORE:regcomp which was called: # once (17µs+0s) by main::BEGIN@7 at line 12
sub warnings::CORE:regcomp; # opcode