]> git.imager.perl.org - imager.git/blame - ppport.h
add new comparison method rgb_difference that resembles arithmetical difference per...
[imager.git] / ppport.h
CommitLineData
7a6cd05b
TC
1#if 0
2<<'SKIP';
3#endif
4/*
5----------------------------------------------------------------------
6
d1442cc4 7 ppport.h -- Perl/Pollution/Portability Version 3.21
7a6cd05b 8
d1442cc4 9 Automatically created by Devel::PPPort running under perl 5.020000.
7a6cd05b
TC
10
11 Do NOT edit this file directly! -- Edit PPPort_pm.PL and the
12 includes in parts/inc/ instead.
13
14 Use 'perldoc ppport.h' to view the documentation below.
15
16----------------------------------------------------------------------
17
18SKIP
19
20=pod
21
22=head1 NAME
23
d1442cc4 24ppport.h - Perl/Pollution/Portability version 3.21
7a6cd05b
TC
25
26=head1 SYNOPSIS
27
28 perl ppport.h [options] [source files]
29
30 Searches current directory for files if no [source files] are given
31
32 --help show short help
33
d1442cc4
TC
34 --version show version
35
7a6cd05b
TC
36 --patch=file write one patch file with changes
37 --copy=suffix write changed copies with suffix
38 --diff=program use diff program and options
39
40 --compat-version=version provide compatibility with Perl version
41 --cplusplus accept C++ comments
42
43 --quiet don't output anything except fatal errors
44 --nodiag don't show diagnostics
45 --nohints don't show hints
46 --nochanges don't suggest changes
47 --nofilter don't filter input files
48
d1442cc4
TC
49 --strip strip all script and doc functionality from
50 ppport.h
51
7a6cd05b
TC
52 --list-provided list provided API
53 --list-unsupported list unsupported API
54 --api-info=name show Perl API portability information
55
56=head1 COMPATIBILITY
57
58This version of F<ppport.h> is designed to support operation with Perl
d1442cc4 59installations back to 5.003, and has been tested up to 5.11.5.
7a6cd05b
TC
60
61=head1 OPTIONS
62
63=head2 --help
64
65Display a brief usage summary.
66
d1442cc4
TC
67=head2 --version
68
69Display the version of F<ppport.h>.
70
7a6cd05b
TC
71=head2 --patch=I<file>
72
73If this option is given, a single patch file will be created if
74any changes are suggested. This requires a working diff program
75to be installed on your system.
76
77=head2 --copy=I<suffix>
78
79If this option is given, a copy of each file will be saved with
80the given suffix that contains the suggested changes. This does
d1442cc4
TC
81not require any external programs. Note that this does not
82automagially add a dot between the original filename and the
83suffix. If you want the dot, you have to include it in the option
84argument.
7a6cd05b
TC
85
86If neither C<--patch> or C<--copy> are given, the default is to
87simply print the diffs for each file. This requires either
88C<Text::Diff> or a C<diff> program to be installed.
89
90=head2 --diff=I<program>
91
92Manually set the diff program and options to use. The default
93is to use C<Text::Diff>, when installed, and output unified
94context diffs.
95
96=head2 --compat-version=I<version>
97
98Tell F<ppport.h> to check for compatibility with the given
99Perl version. The default is to check for compatibility with Perl
100version 5.003. You can use this option to reduce the output
101of F<ppport.h> if you intend to be backward compatible only
d1442cc4 102down to a certain Perl version.
7a6cd05b
TC
103
104=head2 --cplusplus
105
106Usually, F<ppport.h> will detect C++ style comments and
107replace them with C style comments for portability reasons.
108Using this option instructs F<ppport.h> to leave C++
109comments untouched.
110
111=head2 --quiet
112
113Be quiet. Don't print anything except fatal errors.
114
115=head2 --nodiag
116
117Don't output any diagnostic messages. Only portability
118alerts will be printed.
119
120=head2 --nohints
121
122Don't output any hints. Hints often contain useful portability
d1442cc4 123notes. Warnings will still be displayed.
7a6cd05b
TC
124
125=head2 --nochanges
126
127Don't suggest any changes. Only give diagnostic output and hints
128unless these are also deactivated.
129
130=head2 --nofilter
131
132Don't filter the list of input files. By default, files not looking
133like source code (i.e. not *.xs, *.c, *.cc, *.cpp or *.h) are skipped.
134
d1442cc4
TC
135=head2 --strip
136
137Strip all script and documentation functionality from F<ppport.h>.
138This reduces the size of F<ppport.h> dramatically and may be useful
139if you want to include F<ppport.h> in smaller modules without
140increasing their distribution size too much.
141
142The stripped F<ppport.h> will have a C<--unstrip> option that allows
143you to undo the stripping, but only if an appropriate C<Devel::PPPort>
144module is installed.
145
7a6cd05b
TC
146=head2 --list-provided
147
148Lists the API elements for which compatibility is provided by
149F<ppport.h>. Also lists if it must be explicitly requested,
d1442cc4 150if it has dependencies, and if there are hints or warnings for it.
7a6cd05b
TC
151
152=head2 --list-unsupported
153
154Lists the API elements that are known not to be supported by
155F<ppport.h> and below which version of Perl they probably
156won't be available or work.
157
158=head2 --api-info=I<name>
159
160Show portability information for API elements matching I<name>.
161If I<name> is surrounded by slashes, it is interpreted as a regular
162expression.
163
164=head1 DESCRIPTION
165
166In order for a Perl extension (XS) module to be as portable as possible
167across differing versions of Perl itself, certain steps need to be taken.
168
169=over 4
170
171=item *
172
173Including this header is the first major one. This alone will give you
174access to a large part of the Perl API that hasn't been available in
175earlier Perl releases. Use
176
177 perl ppport.h --list-provided
178
179to see which API elements are provided by ppport.h.
180
181=item *
182
183You should avoid using deprecated parts of the API. For example, using
184global Perl variables without the C<PL_> prefix is deprecated. Also,
185some API functions used to have a C<perl_> prefix. Using this form is
186also deprecated. You can safely use the supported API, as F<ppport.h>
187will provide wrappers for older Perl versions.
188
189=item *
190
d1442cc4
TC
191If you use one of a few functions or variables that were not present in
192earlier versions of Perl, and that can't be provided using a macro, you
193have to explicitly request support for these functions by adding one or
7a6cd05b
TC
194more C<#define>s in your source code before the inclusion of F<ppport.h>.
195
d1442cc4
TC
196These functions or variables will be marked C<explicit> in the list shown
197by C<--list-provided>.
7a6cd05b
TC
198
199Depending on whether you module has a single or multiple files that
d1442cc4
TC
200use such functions or variables, you want either C<static> or global
201variants.
7a6cd05b 202
d1442cc4
TC
203For a C<static> function or variable (used only in a single source
204file), use:
7a6cd05b
TC
205
206 #define NEED_function
d1442cc4 207 #define NEED_variable
7a6cd05b 208
d1442cc4
TC
209For a global function or variable (used in multiple source files),
210use:
7a6cd05b
TC
211
212 #define NEED_function_GLOBAL
d1442cc4 213 #define NEED_variable_GLOBAL
7a6cd05b 214
d1442cc4
TC
215Note that you mustn't have more than one global request for the
216same function or variable in your project.
7a6cd05b 217
d1442cc4 218 Function / Variable Static Request Global Request
7a6cd05b 219 -----------------------------------------------------------------------------------------
d1442cc4
TC
220 PL_parser NEED_PL_parser NEED_PL_parser_GLOBAL
221 PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL
7a6cd05b
TC
222 eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL
223 grok_bin() NEED_grok_bin NEED_grok_bin_GLOBAL
224 grok_hex() NEED_grok_hex NEED_grok_hex_GLOBAL
225 grok_number() NEED_grok_number NEED_grok_number_GLOBAL
226 grok_numeric_radix() NEED_grok_numeric_radix NEED_grok_numeric_radix_GLOBAL
227 grok_oct() NEED_grok_oct NEED_grok_oct_GLOBAL
d1442cc4
TC
228 load_module() NEED_load_module NEED_load_module_GLOBAL
229 my_snprintf() NEED_my_snprintf NEED_my_snprintf_GLOBAL
230 my_sprintf() NEED_my_sprintf NEED_my_sprintf_GLOBAL
231 my_strlcat() NEED_my_strlcat NEED_my_strlcat_GLOBAL
232 my_strlcpy() NEED_my_strlcpy NEED_my_strlcpy_GLOBAL
7a6cd05b
TC
233 newCONSTSUB() NEED_newCONSTSUB NEED_newCONSTSUB_GLOBAL
234 newRV_noinc() NEED_newRV_noinc NEED_newRV_noinc_GLOBAL
d1442cc4
TC
235 newSV_type() NEED_newSV_type NEED_newSV_type_GLOBAL
236 newSVpvn_flags() NEED_newSVpvn_flags NEED_newSVpvn_flags_GLOBAL
237 newSVpvn_share() NEED_newSVpvn_share NEED_newSVpvn_share_GLOBAL
238 pv_display() NEED_pv_display NEED_pv_display_GLOBAL
239 pv_escape() NEED_pv_escape NEED_pv_escape_GLOBAL
240 pv_pretty() NEED_pv_pretty NEED_pv_pretty_GLOBAL
241 sv_2pv_flags() NEED_sv_2pv_flags NEED_sv_2pv_flags_GLOBAL
7a6cd05b
TC
242 sv_2pvbyte() NEED_sv_2pvbyte NEED_sv_2pvbyte_GLOBAL
243 sv_catpvf_mg() NEED_sv_catpvf_mg NEED_sv_catpvf_mg_GLOBAL
244 sv_catpvf_mg_nocontext() NEED_sv_catpvf_mg_nocontext NEED_sv_catpvf_mg_nocontext_GLOBAL
d1442cc4 245 sv_pvn_force_flags() NEED_sv_pvn_force_flags NEED_sv_pvn_force_flags_GLOBAL
7a6cd05b
TC
246 sv_setpvf_mg() NEED_sv_setpvf_mg NEED_sv_setpvf_mg_GLOBAL
247 sv_setpvf_mg_nocontext() NEED_sv_setpvf_mg_nocontext NEED_sv_setpvf_mg_nocontext_GLOBAL
d1442cc4 248 vload_module() NEED_vload_module NEED_vload_module_GLOBAL
7a6cd05b 249 vnewSVpvf() NEED_vnewSVpvf NEED_vnewSVpvf_GLOBAL
d1442cc4 250 warner() NEED_warner NEED_warner_GLOBAL
7a6cd05b
TC
251
252To avoid namespace conflicts, you can change the namespace of the
d1442cc4
TC
253explicitly exported functions / variables using the C<DPPP_NAMESPACE>
254macro. Just C<#define> the macro before including C<ppport.h>:
7a6cd05b
TC
255
256 #define DPPP_NAMESPACE MyOwnNamespace_
257 #include "ppport.h"
258
259The default namespace is C<DPPP_>.
260
261=back
262
263The good thing is that most of the above can be checked by running
264F<ppport.h> on your source code. See the next section for
265details.
266
267=head1 EXAMPLES
268
269To verify whether F<ppport.h> is needed for your module, whether you
270should make any changes to your code, and whether any special defines
271should be used, F<ppport.h> can be run as a Perl script to check your
272source code. Simply say:
273
274 perl ppport.h
275
276The result will usually be a list of patches suggesting changes
277that should at least be acceptable, if not necessarily the most
278efficient solution, or a fix for all possible problems.
279
280If you know that your XS module uses features only available in
281newer Perl releases, if you're aware that it uses C++ comments,
282and if you want all suggestions as a single patch file, you could
283use something like this:
284
285 perl ppport.h --compat-version=5.6.0 --cplusplus --patch=test.diff
286
287If you only want your code to be scanned without any suggestions
288for changes, use:
289
290 perl ppport.h --nochanges
291
292You can specify a different C<diff> program or options, using
293the C<--diff> option:
294
295 perl ppport.h --diff='diff -C 10'
296
297This would output context diffs with 10 lines of context.
298
d1442cc4
TC
299If you want to create patched copies of your files instead, use:
300
301 perl ppport.h --copy=.new
302
7a6cd05b
TC
303To display portability information for the C<newSVpvn> function,
304use:
305
306 perl ppport.h --api-info=newSVpvn
307
308Since the argument to C<--api-info> can be a regular expression,
309you can use
310
311 perl ppport.h --api-info=/_nomg$/
312
313to display portability information for all C<_nomg> functions or
314
315 perl ppport.h --api-info=/./
316
317to display information for all known API elements.
318
319=head1 BUGS
320
321If this version of F<ppport.h> is causing failure during
322the compilation of this module, please check if newer versions
323of either this module or C<Devel::PPPort> are available on CPAN
324before sending a bug report.
325
326If F<ppport.h> was generated using the latest version of
327C<Devel::PPPort> and is causing failure of this module, please
328file a bug report using the CPAN Request Tracker at L<http://rt.cpan.org/>.
329
330Please include the following information:
331
332=over 4
333
334=item 1.
335
336The complete output from running "perl -V"
337
338=item 2.
339
340This file.
341
342=item 3.
343
344The name and version of the module you were trying to build.
345
346=item 4.
347
348A full log of the build that failed.
349
350=item 5.
351
352Any other information that you think could be relevant.
353
354=back
355
356For the latest version of this code, please get the C<Devel::PPPort>
357module from CPAN.
358
359=head1 COPYRIGHT
360
d1442cc4 361Version 3.x, Copyright (c) 2004-2013, Marcus Holland-Moritz.
7a6cd05b
TC
362
363Version 2.x, Copyright (C) 2001, Paul Marquess.
364
365Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
366
367This program is free software; you can redistribute it and/or
368modify it under the same terms as Perl itself.
369
370=head1 SEE ALSO
371
372See L<Devel::PPPort>.
373
374=cut
375
376use strict;
377
d1442cc4
TC
378# Disable broken TRIE-optimization
379BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if $] >= 5.009004 && $] <= 5.009005 }
380
381my $VERSION = 3.21;
382
7a6cd05b
TC
383my %opt = (
384 quiet => 0,
385 diag => 1,
386 hints => 1,
387 changes => 1,
388 cplusplus => 0,
389 filter => 1,
d1442cc4
TC
390 strip => 0,
391 version => 0,
7a6cd05b
TC
392);
393
394my($ppport) = $0 =~ /([\w.]+)$/;
395my $LF = '(?:\r\n|[\r\n])'; # line feed
396my $HS = "[ \t]"; # horizontal whitespace
397
d1442cc4
TC
398# Never use C comments in this file!
399my $ccs = '/'.'*';
400my $cce = '*'.'/';
401my $rccs = quotemeta $ccs;
402my $rcce = quotemeta $cce;
403
7a6cd05b
TC
404eval {
405 require Getopt::Long;
406 Getopt::Long::GetOptions(\%opt, qw(
d1442cc4 407 help quiet diag! filter! hints! changes! cplusplus strip version
7a6cd05b
TC
408 patch=s copy=s diff=s compat-version=s
409 list-provided list-unsupported api-info=s
410 )) or usage();
411};
412
413if ($@ and grep /^-/, @ARGV) {
414 usage() if "@ARGV" =~ /^--?h(?:elp)?$/;
415 die "Getopt::Long not found. Please don't use any options.\n";
416}
417
d1442cc4
TC
418if ($opt{version}) {
419 print "This is $0 $VERSION.\n";
420 exit 0;
421}
422
7a6cd05b 423usage() if $opt{help};
d1442cc4 424strip() if $opt{strip};
7a6cd05b
TC
425
426if (exists $opt{'compat-version'}) {
427 my($r,$v,$s) = eval { parse_version($opt{'compat-version'}) };
428 if ($@) {
429 die "Invalid version number format: '$opt{'compat-version'}'\n";
430 }
431 die "Only Perl 5 is supported\n" if $r != 5;
432 die "Invalid version number: $opt{'compat-version'}\n" if $v >= 1000 || $s >= 1000;
433 $opt{'compat-version'} = sprintf "%d.%03d%03d", $r, $v, $s;
434}
435else {
436 $opt{'compat-version'} = 5;
437}
438
7a6cd05b
TC
439my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/
440 ? ( $1 => {
441 ($2 ? ( base => $2 ) : ()),
442 ($3 ? ( todo => $3 ) : ()),
443 (index($4, 'v') >= 0 ? ( varargs => 1 ) : ()),
444 (index($4, 'p') >= 0 ? ( provided => 1 ) : ()),
445 (index($4, 'n') >= 0 ? ( nothxarg => 1 ) : ()),
446 } )
447 : die "invalid spec: $_" } qw(
448AvFILLp|5.004050||p
449AvFILL|||
d1442cc4
TC
450BhkDISABLE||5.019003|
451BhkENABLE||5.019003|
452BhkENTRY_set||5.019003|
453BhkENTRY|||
454BhkFLAGS|||
455CALL_BLOCK_HOOKS|||
7a6cd05b 456CLASS|||n
d1442cc4 457CPERLscope|5.005000||p
7a6cd05b
TC
458CX_CURPAD_SAVE|||
459CX_CURPAD_SV|||
460CopFILEAV|5.006000||p
461CopFILEGV_set|5.006000||p
462CopFILEGV|5.006000||p
463CopFILESV|5.006000||p
464CopFILE_set|5.006000||p
465CopFILE|5.006000||p
466CopSTASHPV_set|5.006000||p
467CopSTASHPV|5.006000||p
468CopSTASH_eq|5.006000||p
469CopSTASH_set|5.006000||p
470CopSTASH|5.006000||p
d1442cc4
TC
471CopyD|5.009002|5.004050|p
472Copy||5.004050|
473CvPADLIST||5.008001|
7a6cd05b
TC
474CvSTASH|||
475CvWEAKOUTSIDE|||
d1442cc4 476DEFSV_set|5.010001||p
7a6cd05b
TC
477DEFSV|5.004050||p
478END_EXTERN_C|5.005000||p
479ENTER|||
480ERRSV|5.004050||p
481EXTEND|||
482EXTERN_C|5.005000||p
d1442cc4 483F0convert|||n
7a6cd05b
TC
484FREETMPS|||
485GIMME_V||5.004000|n
486GIMME|||n
487GROK_NUMERIC_RADIX|5.007002||p
488G_ARRAY|||
489G_DISCARD|||
490G_EVAL|||
d1442cc4 491G_METHOD|5.006001||p
7a6cd05b
TC
492G_NOARGS|||
493G_SCALAR|||
494G_VOID||5.004000|
495GetVars|||
d1442cc4
TC
496GvAV|||
497GvCV|||
498GvHV|||
499GvSVn|5.009003||p
7a6cd05b 500GvSV|||
d1442cc4 501Gv_AMupdate||5.011000|
7a6cd05b
TC
502HEf_SVKEY||5.004000|
503HeHASH||5.004000|
504HeKEY||5.004000|
505HeKLEN||5.004000|
506HePV||5.004000|
507HeSVKEY_force||5.004000|
508HeSVKEY_set||5.004000|
509HeSVKEY||5.004000|
d1442cc4 510HeUTF8||5.010001|
7a6cd05b 511HeVAL||5.004000|
d1442cc4
TC
512HvENAMELEN||5.015004|
513HvENAMEUTF8||5.015004|
514HvENAME||5.013007|
515HvNAMELEN_get|5.009003||p
516HvNAMELEN||5.015004|
517HvNAMEUTF8||5.015004|
518HvNAME_get|5.009003||p
7a6cd05b
TC
519HvNAME|||
520INT2PTR|5.006000||p
521IN_LOCALE_COMPILETIME|5.007002||p
522IN_LOCALE_RUNTIME|5.007002||p
523IN_LOCALE|5.007002||p
524IN_PERL_COMPILETIME|5.008001||p
525IS_NUMBER_GREATER_THAN_UV_MAX|5.007002||p
526IS_NUMBER_INFINITY|5.007002||p
527IS_NUMBER_IN_UV|5.007002||p
528IS_NUMBER_NAN|5.007003||p
529IS_NUMBER_NEG|5.007002||p
530IS_NUMBER_NOT_INT|5.007002||p
531IVSIZE|5.006000||p
532IVTYPE|5.006000||p
533IVdf|5.006000||p
534LEAVE|||
d1442cc4 535LINKLIST||5.013006|
7a6cd05b
TC
536LVRET|||
537MARK|||
d1442cc4 538MULTICALL||5.019003|
7a6cd05b
TC
539MY_CXT_CLONE|5.009002||p
540MY_CXT_INIT|5.007003||p
541MY_CXT|5.007003||p
d1442cc4
TC
542MoveD|5.009002|5.004050|p
543Move||5.004050|
7a6cd05b
TC
544NOOP|5.005000||p
545NUM2PTR|5.006000||p
546NVTYPE|5.006000||p
547NVef|5.006001||p
548NVff|5.006001||p
549NVgf|5.006001||p
d1442cc4
TC
550Newxc|5.009003||p
551Newxz|5.009003||p
552Newx|5.009003||p
7a6cd05b
TC
553Nullav|||
554Nullch|||
555Nullcv|||
556Nullhv|||
557Nullsv|||
d1442cc4
TC
558OP_CLASS||5.013007|
559OP_DESC||5.007003|
560OP_NAME||5.007003|
7a6cd05b
TC
561ORIGMARK|||
562PAD_BASE_SV|||
563PAD_CLONE_VARS|||
564PAD_COMPNAME_FLAGS|||
565PAD_COMPNAME_GEN_set|||
566PAD_COMPNAME_GEN|||
567PAD_COMPNAME_OURSTASH|||
568PAD_COMPNAME_PV|||
569PAD_COMPNAME_TYPE|||
570PAD_RESTORE_LOCAL|||
571PAD_SAVE_LOCAL|||
572PAD_SAVE_SETNULLPAD|||
573PAD_SETSV|||
574PAD_SET_CUR_NOSAVE|||
575PAD_SET_CUR|||
576PAD_SVl|||
577PAD_SV|||
d1442cc4
TC
578PERLIO_FUNCS_CAST|5.009003||p
579PERLIO_FUNCS_DECL|5.009003||p
580PERL_ABS|5.008001||p
581PERL_BCDVERSION|5.019002||p
7a6cd05b 582PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p
d1442cc4 583PERL_HASH|5.004000||p
7a6cd05b
TC
584PERL_INT_MAX|5.004000||p
585PERL_INT_MIN|5.004000||p
586PERL_LONG_MAX|5.004000||p
587PERL_LONG_MIN|5.004000||p
588PERL_MAGIC_arylen|5.007002||p
589PERL_MAGIC_backref|5.007002||p
590PERL_MAGIC_bm|5.007002||p
591PERL_MAGIC_collxfrm|5.007002||p
592PERL_MAGIC_dbfile|5.007002||p
593PERL_MAGIC_dbline|5.007002||p
594PERL_MAGIC_defelem|5.007002||p
595PERL_MAGIC_envelem|5.007002||p
596PERL_MAGIC_env|5.007002||p
597PERL_MAGIC_ext|5.007002||p
598PERL_MAGIC_fm|5.007002||p
d1442cc4 599PERL_MAGIC_glob|5.019002||p
7a6cd05b
TC
600PERL_MAGIC_isaelem|5.007002||p
601PERL_MAGIC_isa|5.007002||p
d1442cc4 602PERL_MAGIC_mutex|5.019002||p
7a6cd05b 603PERL_MAGIC_nkeys|5.007002||p
d1442cc4 604PERL_MAGIC_overload_elem|5.019002||p
7a6cd05b 605PERL_MAGIC_overload_table|5.007002||p
d1442cc4 606PERL_MAGIC_overload|5.019002||p
7a6cd05b
TC
607PERL_MAGIC_pos|5.007002||p
608PERL_MAGIC_qr|5.007002||p
609PERL_MAGIC_regdata|5.007002||p
610PERL_MAGIC_regdatum|5.007002||p
611PERL_MAGIC_regex_global|5.007002||p
612PERL_MAGIC_shared_scalar|5.007003||p
613PERL_MAGIC_shared|5.007003||p
614PERL_MAGIC_sigelem|5.007002||p
615PERL_MAGIC_sig|5.007002||p
616PERL_MAGIC_substr|5.007002||p
617PERL_MAGIC_sv|5.007002||p
618PERL_MAGIC_taint|5.007002||p
619PERL_MAGIC_tiedelem|5.007002||p
620PERL_MAGIC_tiedscalar|5.007002||p
621PERL_MAGIC_tied|5.007002||p
622PERL_MAGIC_utf8|5.008001||p
623PERL_MAGIC_uvar_elem|5.007003||p
624PERL_MAGIC_uvar|5.007002||p
625PERL_MAGIC_vec|5.007002||p
626PERL_MAGIC_vstring|5.008001||p
d1442cc4
TC
627PERL_PV_ESCAPE_ALL|5.009004||p
628PERL_PV_ESCAPE_FIRSTCHAR|5.009004||p
629PERL_PV_ESCAPE_NOBACKSLASH|5.009004||p
630PERL_PV_ESCAPE_NOCLEAR|5.009004||p
631PERL_PV_ESCAPE_QUOTE|5.009004||p
632PERL_PV_ESCAPE_RE|5.009005||p
633PERL_PV_ESCAPE_UNI_DETECT|5.009004||p
634PERL_PV_ESCAPE_UNI|5.009004||p
635PERL_PV_PRETTY_DUMP|5.009004||p
636PERL_PV_PRETTY_ELLIPSES|5.010000||p
637PERL_PV_PRETTY_LTGT|5.009004||p
638PERL_PV_PRETTY_NOCLEAR|5.010000||p
639PERL_PV_PRETTY_QUOTE|5.009004||p
640PERL_PV_PRETTY_REGPROP|5.009004||p
7a6cd05b
TC
641PERL_QUAD_MAX|5.004000||p
642PERL_QUAD_MIN|5.004000||p
643PERL_REVISION|5.006000||p
644PERL_SCAN_ALLOW_UNDERSCORES|5.007003||p
645PERL_SCAN_DISALLOW_PREFIX|5.007003||p
646PERL_SCAN_GREATER_THAN_UV_MAX|5.007003||p
647PERL_SCAN_SILENT_ILLDIGIT|5.008001||p
648PERL_SHORT_MAX|5.004000||p
649PERL_SHORT_MIN|5.004000||p
d1442cc4 650PERL_SIGNALS_UNSAFE_FLAG|5.008001||p
7a6cd05b 651PERL_SUBVERSION|5.006000||p
d1442cc4
TC
652PERL_SYS_INIT3||5.010000|
653PERL_SYS_INIT||5.010000|
654PERL_SYS_TERM||5.019003|
7a6cd05b
TC
655PERL_UCHAR_MAX|5.004000||p
656PERL_UCHAR_MIN|5.004000||p
657PERL_UINT_MAX|5.004000||p
658PERL_UINT_MIN|5.004000||p
659PERL_ULONG_MAX|5.004000||p
660PERL_ULONG_MIN|5.004000||p
d1442cc4
TC
661PERL_UNUSED_ARG|5.009003||p
662PERL_UNUSED_CONTEXT|5.009004||p
7a6cd05b 663PERL_UNUSED_DECL|5.007002||p
d1442cc4 664PERL_UNUSED_VAR|5.007002||p
7a6cd05b
TC
665PERL_UQUAD_MAX|5.004000||p
666PERL_UQUAD_MIN|5.004000||p
d1442cc4 667PERL_USE_GCC_BRACE_GROUPS|5.009004||p
7a6cd05b
TC
668PERL_USHORT_MAX|5.004000||p
669PERL_USHORT_MIN|5.004000||p
670PERL_VERSION|5.006000||p
d1442cc4 671PL_DBsignal|5.005000||p
7a6cd05b
TC
672PL_DBsingle|||pn
673PL_DBsub|||pn
d1442cc4 674PL_DBtrace|||pn
7a6cd05b 675PL_Sv|5.005000||p
d1442cc4
TC
676PL_bufend|5.019002||p
677PL_bufptr|5.019002||p
678PL_check||5.006000|
7a6cd05b 679PL_compiling|5.004050||p
d1442cc4
TC
680PL_comppad_name||5.017004|
681PL_comppad||5.008001|
682PL_copline|5.019002||p
7a6cd05b 683PL_curcop|5.004050||p
d1442cc4 684PL_curpad||5.005000|
7a6cd05b
TC
685PL_curstash|5.004050||p
686PL_debstash|5.004050||p
687PL_defgv|5.004050||p
688PL_diehook|5.004050||p
689PL_dirty|5.004050||p
690PL_dowarn|||pn
691PL_errgv|5.004050||p
d1442cc4
TC
692PL_error_count|5.019002||p
693PL_expect|5.019002||p
7a6cd05b
TC
694PL_hexdigit|5.005000||p
695PL_hints|5.005000||p
d1442cc4
TC
696PL_in_my_stash|5.019002||p
697PL_in_my|5.019002||p
698PL_keyword_plugin||5.011002|
7a6cd05b 699PL_last_in_gv|||n
d1442cc4
TC
700PL_laststatval|5.005000||p
701PL_lex_state|5.019002||p
702PL_lex_stuff|5.019002||p
703PL_linestr|5.019002||p
7a6cd05b
TC
704PL_modglobal||5.005000|n
705PL_na|5.004050||pn
706PL_no_modify|5.006000||p
d1442cc4
TC
707PL_ofsgv|||n
708PL_opfreehook||5.011000|n
709PL_parser|5.009005|5.009005|p
710PL_peepp||5.007003|n
7a6cd05b
TC
711PL_perl_destruct_level|5.004050||p
712PL_perldb|5.004050||p
713PL_ppaddr|5.006000||p
d1442cc4
TC
714PL_rpeepp||5.013005|n
715PL_rsfp_filters|5.019002||p
716PL_rsfp|5.019002||p
7a6cd05b 717PL_rs|||n
d1442cc4 718PL_signals|5.008001||p
7a6cd05b
TC
719PL_stack_base|5.004050||p
720PL_stack_sp|5.004050||p
d1442cc4 721PL_statcache|5.005000||p
7a6cd05b
TC
722PL_stdingv|5.004050||p
723PL_sv_arenaroot|5.004050||p
724PL_sv_no|5.004050||pn
725PL_sv_undef|5.004050||pn
726PL_sv_yes|5.004050||pn
727PL_tainted|5.004050||p
728PL_tainting|5.004050||p
d1442cc4
TC
729PL_tokenbuf|5.019002||p
730POP_MULTICALL||5.019003|
7a6cd05b
TC
731POPi|||n
732POPl|||n
733POPn|||n
734POPpbytex||5.007001|n
735POPpx||5.005030|n
736POPp|||n
737POPs|||n
738PTR2IV|5.006000||p
739PTR2NV|5.006000||p
740PTR2UV|5.006000||p
d1442cc4 741PTR2nat|5.009003||p
7a6cd05b
TC
742PTR2ul|5.007001||p
743PTRV|5.006000||p
744PUSHMARK|||
d1442cc4 745PUSH_MULTICALL||5.019003|
7a6cd05b
TC
746PUSHi|||
747PUSHmortal|5.009002||p
748PUSHn|||
749PUSHp|||
750PUSHs|||
751PUSHu|5.004000||p
752PUTBACK|||
d1442cc4
TC
753PadARRAY||5.019003|
754PadMAX||5.019003|
755PadlistARRAY||5.019003|
756PadlistMAX||5.019003|
757PadlistNAMESARRAY||5.019003|
758PadlistNAMESMAX||5.019003|
759PadlistNAMES||5.019003|
760PadlistREFCNT||5.017004|
761PadnameIsOUR|||
762PadnameIsSTATE|||
763PadnameLEN||5.019003|
764PadnameOURSTASH|||
765PadnameOUTER|||
766PadnamePV||5.019003|
767PadnameSV||5.019003|
768PadnameTYPE|||
769PadnameUTF8||5.019003|
770PadnamelistARRAY||5.019003|
771PadnamelistMAX||5.019003|
7a6cd05b
TC
772PerlIO_clearerr||5.007003|
773PerlIO_close||5.007003|
d1442cc4 774PerlIO_context_layers||5.009004|
7a6cd05b
TC
775PerlIO_eof||5.007003|
776PerlIO_error||5.007003|
777PerlIO_fileno||5.007003|
778PerlIO_fill||5.007003|
779PerlIO_flush||5.007003|
780PerlIO_get_base||5.007003|
781PerlIO_get_bufsiz||5.007003|
782PerlIO_get_cnt||5.007003|
783PerlIO_get_ptr||5.007003|
784PerlIO_read||5.007003|
785PerlIO_seek||5.007003|
786PerlIO_set_cnt||5.007003|
787PerlIO_set_ptrcnt||5.007003|
788PerlIO_setlinebuf||5.007003|
789PerlIO_stderr||5.007003|
790PerlIO_stdin||5.007003|
791PerlIO_stdout||5.007003|
792PerlIO_tell||5.007003|
793PerlIO_unread||5.007003|
794PerlIO_write||5.007003|
d1442cc4
TC
795Perl_signbit||5.009005|n
796PoisonFree|5.009004||p
797PoisonNew|5.009004||p
798PoisonWith|5.009004||p
7a6cd05b 799Poison|5.008000||p
d1442cc4 800READ_XDIGIT||5.017006|
7a6cd05b
TC
801RETVAL|||n
802Renewc|||
803Renew|||
804SAVECLEARSV|||
805SAVECOMPPAD|||
806SAVEPADSV|||
807SAVETMPS|||
808SAVE_DEFSV|5.004050||p
809SPAGAIN|||
810SP|||
811START_EXTERN_C|5.005000||p
812START_MY_CXT|5.007003||p
813STMT_END|||p
814STMT_START|||p
d1442cc4 815STR_WITH_LEN|5.009003||p
7a6cd05b 816ST|||
d1442cc4
TC
817SV_CONST_RETURN|5.009003||p
818SV_COW_DROP_PV|5.008001||p
819SV_COW_SHARED_HASH_KEYS|5.009005||p
820SV_GMAGIC|5.007002||p
821SV_HAS_TRAILING_NUL|5.009004||p
822SV_IMMEDIATE_UNREF|5.007001||p
823SV_MUTABLE_RETURN|5.009003||p
824SV_NOSTEAL|5.009002||p
825SV_SMAGIC|5.009003||p
826SV_UTF8_NO_ENCODING|5.008001||p
827SVfARG|5.009005||p
828SVf_UTF8|5.006000||p
829SVf|5.006000||p
830SVt_INVLIST||5.019002|
7a6cd05b 831SVt_IV|||
d1442cc4 832SVt_NULL|||
7a6cd05b
TC
833SVt_NV|||
834SVt_PVAV|||
835SVt_PVCV|||
d1442cc4
TC
836SVt_PVFM|||
837SVt_PVGV|||
7a6cd05b 838SVt_PVHV|||
d1442cc4
TC
839SVt_PVIO|||
840SVt_PVIV|||
841SVt_PVLV|||
7a6cd05b 842SVt_PVMG|||
d1442cc4 843SVt_PVNV|||
7a6cd05b 844SVt_PV|||
d1442cc4 845SVt_REGEXP||5.011000|
7a6cd05b
TC
846Safefree|||
847Slab_Alloc|||
848Slab_Free|||
d1442cc4
TC
849Slab_to_ro|||
850Slab_to_rw|||
7a6cd05b
TC
851StructCopy|||
852SvCUR_set|||
853SvCUR|||
854SvEND|||
d1442cc4 855SvGAMAGIC||5.006001|
7a6cd05b
TC
856SvGETMAGIC|5.004050||p
857SvGROW|||
858SvIOK_UV||5.006000|
859SvIOK_notUV||5.006000|
860SvIOK_off|||
861SvIOK_only_UV||5.006000|
862SvIOK_only|||
863SvIOK_on|||
864SvIOKp|||
865SvIOK|||
866SvIVX|||
867SvIV_nomg|5.009001||p
868SvIV_set|||
869SvIVx|||
870SvIV|||
871SvIsCOW_shared_hash||5.008003|
872SvIsCOW||5.008003|
873SvLEN_set|||
874SvLEN|||
875SvLOCK||5.007003|
d1442cc4 876SvMAGIC_set|5.009003||p
7a6cd05b
TC
877SvNIOK_off|||
878SvNIOKp|||
879SvNIOK|||
880SvNOK_off|||
881SvNOK_only|||
882SvNOK_on|||
883SvNOKp|||
884SvNOK|||
885SvNVX|||
d1442cc4 886SvNV_nomg||5.013002|
7a6cd05b
TC
887SvNV_set|||
888SvNVx|||
889SvNV|||
890SvOK|||
d1442cc4 891SvOOK_offset||5.011000|
7a6cd05b
TC
892SvOOK|||
893SvPOK_off|||
894SvPOK_only_UTF8||5.006000|
895SvPOK_only|||
896SvPOK_on|||
897SvPOKp|||
898SvPOK|||
d1442cc4
TC
899SvPVX_const|5.009003||p
900SvPVX_mutable|5.009003||p
7a6cd05b 901SvPVX|||
d1442cc4
TC
902SvPV_const|5.009003||p
903SvPV_flags_const_nolen|5.009003||p
904SvPV_flags_const|5.009003||p
905SvPV_flags_mutable|5.009003||p
906SvPV_flags|5.007002||p
907SvPV_force_flags_mutable|5.009003||p
908SvPV_force_flags_nolen|5.009003||p
909SvPV_force_flags|5.007002||p
910SvPV_force_mutable|5.009003||p
911SvPV_force_nolen|5.009003||p
912SvPV_force_nomg_nolen|5.009003||p
7a6cd05b 913SvPV_force_nomg|5.007002||p
d1442cc4
TC
914SvPV_force|||p
915SvPV_mutable|5.009003||p
916SvPV_nolen_const|5.009003||p
7a6cd05b 917SvPV_nolen|5.006000||p
d1442cc4
TC
918SvPV_nomg_const_nolen|5.009003||p
919SvPV_nomg_const|5.009003||p
920SvPV_nomg_nolen|5.013007||p
7a6cd05b 921SvPV_nomg|5.007002||p
d1442cc4 922SvPV_renew|5.009003||p
7a6cd05b
TC
923SvPV_set|||
924SvPVbyte_force||5.009002|
925SvPVbyte_nolen||5.006000|
926SvPVbytex_force||5.006000|
927SvPVbytex||5.006000|
928SvPVbyte|5.006000||p
929SvPVutf8_force||5.006000|
930SvPVutf8_nolen||5.006000|
931SvPVutf8x_force||5.006000|
932SvPVutf8x||5.006000|
933SvPVutf8||5.006000|
934SvPVx|||
935SvPV|||
d1442cc4 936SvREFCNT_dec_NN||5.017007|
7a6cd05b 937SvREFCNT_dec|||
d1442cc4
TC
938SvREFCNT_inc_NN|5.009004||p
939SvREFCNT_inc_simple_NN|5.009004||p
940SvREFCNT_inc_simple_void_NN|5.009004||p
941SvREFCNT_inc_simple_void|5.009004||p
942SvREFCNT_inc_simple|5.009004||p
943SvREFCNT_inc_void_NN|5.009004||p
944SvREFCNT_inc_void|5.009004||p
945SvREFCNT_inc|||p
7a6cd05b
TC
946SvREFCNT|||
947SvROK_off|||
948SvROK_on|||
949SvROK|||
d1442cc4 950SvRV_set|5.009003||p
7a6cd05b 951SvRV|||
d1442cc4
TC
952SvRXOK||5.009005|
953SvRX||5.009005|
7a6cd05b 954SvSETMAGIC|||
d1442cc4 955SvSHARED_HASH|5.009003||p
7a6cd05b 956SvSHARE||5.007003|
d1442cc4 957SvSTASH_set|5.009003||p
7a6cd05b
TC
958SvSTASH|||
959SvSetMagicSV_nosteal||5.004000|
960SvSetMagicSV||5.004000|
961SvSetSV_nosteal||5.004000|
962SvSetSV|||
963SvTAINTED_off||5.004000|
964SvTAINTED_on||5.004000|
965SvTAINTED||5.004000|
966SvTAINT|||
d1442cc4
TC
967SvTHINKFIRST|||
968SvTRUE_nomg||5.013006|
7a6cd05b
TC
969SvTRUE|||
970SvTYPE|||
971SvUNLOCK||5.007003|
d1442cc4 972SvUOK|5.007001|5.006000|p
7a6cd05b
TC
973SvUPGRADE|||
974SvUTF8_off||5.006000|
975SvUTF8_on||5.006000|
976SvUTF8||5.006000|
977SvUVXx|5.004000||p
978SvUVX|5.004000||p
979SvUV_nomg|5.009001||p
d1442cc4 980SvUV_set|5.009003||p
7a6cd05b
TC
981SvUVx|5.004000||p
982SvUV|5.004000||p
983SvVOK||5.008001|
d1442cc4 984SvVSTRING_mg|5.009004||p
7a6cd05b
TC
985THIS|||n
986UNDERBAR|5.009002||p
d1442cc4 987UTF8_MAXBYTES|5.009002||p
7a6cd05b
TC
988UVSIZE|5.006000||p
989UVTYPE|5.006000||p
990UVXf|5.007001||p
991UVof|5.006000||p
992UVuf|5.006000||p
993UVxf|5.006000||p
d1442cc4
TC
994WARN_ALL|5.006000||p
995WARN_AMBIGUOUS|5.006000||p
996WARN_ASSERTIONS|5.019002||p
997WARN_BAREWORD|5.006000||p
998WARN_CLOSED|5.006000||p
999WARN_CLOSURE|5.006000||p
1000WARN_DEBUGGING|5.006000||p
1001WARN_DEPRECATED|5.006000||p
1002WARN_DIGIT|5.006000||p
1003WARN_EXEC|5.006000||p
1004WARN_EXITING|5.006000||p
1005WARN_GLOB|5.006000||p
1006WARN_INPLACE|5.006000||p
1007WARN_INTERNAL|5.006000||p
1008WARN_IO|5.006000||p
1009WARN_LAYER|5.008000||p
1010WARN_MALLOC|5.006000||p
1011WARN_MISC|5.006000||p
1012WARN_NEWLINE|5.006000||p
1013WARN_NUMERIC|5.006000||p
1014WARN_ONCE|5.006000||p
1015WARN_OVERFLOW|5.006000||p
1016WARN_PACK|5.006000||p
1017WARN_PARENTHESIS|5.006000||p
1018WARN_PIPE|5.006000||p
1019WARN_PORTABLE|5.006000||p
1020WARN_PRECEDENCE|5.006000||p
1021WARN_PRINTF|5.006000||p
1022WARN_PROTOTYPE|5.006000||p
1023WARN_QW|5.006000||p
1024WARN_RECURSION|5.006000||p
1025WARN_REDEFINE|5.006000||p
1026WARN_REGEXP|5.006000||p
1027WARN_RESERVED|5.006000||p
1028WARN_SEMICOLON|5.006000||p
1029WARN_SEVERE|5.006000||p
1030WARN_SIGNAL|5.006000||p
1031WARN_SUBSTR|5.006000||p
1032WARN_SYNTAX|5.006000||p
1033WARN_TAINT|5.006000||p
1034WARN_THREADS|5.008000||p
1035WARN_UNINITIALIZED|5.006000||p
1036WARN_UNOPENED|5.006000||p
1037WARN_UNPACK|5.006000||p
1038WARN_UNTIE|5.006000||p
1039WARN_UTF8|5.006000||p
1040WARN_VOID|5.006000||p
1041WIDEST_UTYPE|5.015004||p
7a6cd05b 1042XCPT_CATCH|5.009002||p
d1442cc4
TC
1043XCPT_RETHROW|5.009002|5.007001|p
1044XCPT_TRY_END|5.009002|5.004000|p
1045XCPT_TRY_START|5.009002|5.004000|p
7a6cd05b
TC
1046XPUSHi|||
1047XPUSHmortal|5.009002||p
1048XPUSHn|||
1049XPUSHp|||
1050XPUSHs|||
1051XPUSHu|5.004000||p
d1442cc4 1052XSPROTO|5.010000||p
7a6cd05b
TC
1053XSRETURN_EMPTY|||
1054XSRETURN_IV|||
1055XSRETURN_NO|||
1056XSRETURN_NV|||
1057XSRETURN_PV|||
1058XSRETURN_UNDEF|||
1059XSRETURN_UV|5.008001||p
1060XSRETURN_YES|||
d1442cc4 1061XSRETURN|||p
7a6cd05b
TC
1062XST_mIV|||
1063XST_mNO|||
1064XST_mNV|||
1065XST_mPV|||
1066XST_mUNDEF|||
1067XST_mUV|5.008001||p
1068XST_mYES|||
d1442cc4
TC
1069XS_APIVERSION_BOOTCHECK||5.013004|
1070XS_EXTERNAL||5.019003|
1071XS_INTERNAL||5.019003|
7a6cd05b
TC
1072XS_VERSION_BOOTCHECK|||
1073XS_VERSION|||
d1442cc4 1074XSprePUSH|5.006000||p
7a6cd05b 1075XS|||
d1442cc4
TC
1076XopDISABLE||5.019003|
1077XopENABLE||5.019003|
1078XopENTRY_set||5.019003|
1079XopENTRY||5.019003|
1080XopFLAGS||5.013007|
7a6cd05b
TC
1081ZeroD|5.009002||p
1082Zero|||
1083_aMY_CXT|5.007003||p
d1442cc4
TC
1084_add_range_to_invlist|||
1085_append_range_to_invlist|||
1086_core_swash_init|||
1087_get_swash_invlist|||
1088_invlist_array_init|||
1089_invlist_contains_cp|||
1090_invlist_contents|||
1091_invlist_dump|||
1092_invlist_intersection_maybe_complement_2nd|||
1093_invlist_intersection|||
1094_invlist_invert_prop|||
1095_invlist_invert|||
1096_invlist_len|||
1097_invlist_populate_swatch|||
1098_invlist_search|||
1099_invlist_subtract|||
1100_invlist_union_maybe_complement_2nd|||
1101_invlist_union|||
1102_is_uni_FOO||5.017008|
1103_is_uni_perl_idcont||5.017008|
1104_is_uni_perl_idstart||5.017007|
1105_is_utf8_FOO||5.017008|
1106_is_utf8_mark||5.017008|
1107_is_utf8_perl_idcont||5.017008|
1108_is_utf8_perl_idstart||5.017007|
1109_new_invlist_C_array|||
1110_new_invlist|||
7a6cd05b 1111_pMY_CXT|5.007003||p
d1442cc4
TC
1112_swash_inversion_hash|||
1113_swash_to_invlist|||
1114_to_fold_latin1|||
1115_to_uni_fold_flags||5.013011|
1116_to_upper_title_latin1|||
1117_to_utf8_fold_flags||5.015006|
1118_to_utf8_lower_flags||5.015006|
1119_to_utf8_title_flags||5.015006|
1120_to_utf8_upper_flags||5.015006|
7a6cd05b
TC
1121aMY_CXT_|5.007003||p
1122aMY_CXT|5.007003||p
d1442cc4
TC
1123aTHXR_|5.019002||p
1124aTHXR|5.019002||p
7a6cd05b
TC
1125aTHX_|5.006000||p
1126aTHX|5.006000||p
d1442cc4
TC
1127aassign_common_vars|||
1128add_cp_to_invlist|||
1129add_data|||n
1130add_utf16_textfilter|||
1131addmad|||
1132adjust_size_and_find_bucket|||n
1133adjust_stack_on_leave|||
1134alloc_maybe_populate_EXACT|||
1135alloccopstash|||
7a6cd05b
TC
1136allocmy|||
1137amagic_call|||
d1442cc4
TC
1138amagic_cmp_locale|||
1139amagic_cmp|||
1140amagic_deref_call||5.013007|
1141amagic_i_ncmp|||
1142amagic_is_enabled|||
1143amagic_ncmp|||
1144anonymise_cv_maybe|||
7a6cd05b
TC
1145any_dup|||
1146ao|||
d1442cc4 1147append_madprops|||
7a6cd05b
TC
1148apply_attrs_my|||
1149apply_attrs_string||5.006001|
1150apply_attrs|||
1151apply|||
d1442cc4 1152assert_uft8_cache_coherent|||
7a6cd05b
TC
1153atfork_lock||5.007003|n
1154atfork_unlock||5.007003|n
1155av_arylen_p||5.009003|
1156av_clear|||
d1442cc4
TC
1157av_create_and_push||5.009005|
1158av_create_and_unshift_one||5.009005|
7a6cd05b
TC
1159av_delete||5.006000|
1160av_exists||5.006000|
d1442cc4 1161av_extend_guts|||
7a6cd05b 1162av_extend|||
7a6cd05b
TC
1163av_fetch|||
1164av_fill|||
d1442cc4 1165av_iter_p||5.011000|
7a6cd05b
TC
1166av_len|||
1167av_make|||
1168av_pop|||
1169av_push|||
1170av_reify|||
1171av_shift|||
1172av_store|||
d1442cc4
TC
1173av_tindex||5.017009|
1174av_top_index||5.017009|
7a6cd05b
TC
1175av_undef|||
1176av_unshift|||
1177ax|||n
d1442cc4
TC
1178bad_type_gv|||
1179bad_type_pv|||
7a6cd05b
TC
1180bind_match|||
1181block_end|||
1182block_gimme||5.004000|
1183block_start|||
d1442cc4 1184blockhook_register||5.013003|
7a6cd05b
TC
1185boolSV|5.004000||p
1186boot_core_PerlIO|||
1187boot_core_UNIVERSAL|||
d1442cc4
TC
1188boot_core_mro|||
1189bytes_cmp_utf8||5.013007|
7a6cd05b 1190bytes_from_utf8||5.007001|
d1442cc4 1191bytes_to_uni|||n
7a6cd05b 1192bytes_to_utf8||5.006001|
7a6cd05b
TC
1193call_argv|5.006000||p
1194call_atexit||5.006000|
7a6cd05b
TC
1195call_list||5.004000|
1196call_method|5.006000||p
1197call_pv|5.006000||p
1198call_sv|5.006000||p
d1442cc4 1199caller_cx||5.013005|
7a6cd05b
TC
1200calloc||5.007002|n
1201cando|||
1202cast_i32||5.006000|
1203cast_iv||5.006000|
1204cast_ulong||5.006000|
1205cast_uv||5.006000|
d1442cc4
TC
1206check_locale_boundary_crossing|||
1207check_type_and_open|||
7a6cd05b 1208check_uni|||
d1442cc4 1209check_utf8_print|||
7a6cd05b 1210checkcomma|||
d1442cc4
TC
1211ckWARN|5.006000||p
1212ck_entersub_args_core|||
1213ck_entersub_args_list||5.013006|
1214ck_entersub_args_proto_or_list||5.013006|
1215ck_entersub_args_proto||5.013006|
1216ck_warner_d||5.011001|v
1217ck_warner||5.011001|v
1218ckwarn_common|||
1219ckwarn_d||5.009003|
1220ckwarn||5.009003|
1221cl_and|||n
1222cl_anything|||n
1223cl_init|||n
1224cl_is_anything|||n
1225cl_or|||n
1226clear_placeholders|||
1227clone_params_del|||n
1228clone_params_new|||n
7a6cd05b 1229closest_cop|||
d1442cc4 1230compute_EXACTish|||
7a6cd05b 1231convert|||
d1442cc4 1232cop_fetch_label||5.015001|
7a6cd05b 1233cop_free|||
d1442cc4
TC
1234cop_hints_2hv||5.013007|
1235cop_hints_fetch_pvn||5.013007|
1236cop_hints_fetch_pvs||5.013007|
1237cop_hints_fetch_pv||5.013007|
1238cop_hints_fetch_sv||5.013007|
1239cop_store_label||5.015001|
1240cophh_2hv||5.013007|
1241cophh_copy||5.013007|
1242cophh_delete_pvn||5.013007|
1243cophh_delete_pvs||5.013007|
1244cophh_delete_pv||5.013007|
1245cophh_delete_sv||5.013007|
1246cophh_fetch_pvn||5.013007|
1247cophh_fetch_pvs||5.013007|
1248cophh_fetch_pv||5.013007|
1249cophh_fetch_sv||5.013007|
1250cophh_free||5.013007|
1251cophh_new_empty||5.019003|
1252cophh_store_pvn||5.013007|
1253cophh_store_pvs||5.013007|
1254cophh_store_pv||5.013007|
1255cophh_store_sv||5.013007|
1256core_prototype|||
1257core_regclass_swash|||
1258coresub_op|||
1259could_it_be_a_POSIX_class|||
7a6cd05b 1260cr_textfilter|||
d1442cc4
TC
1261create_eval_scope|||
1262croak_memory_wrap||5.019003|n
1263croak_no_mem|||n
1264croak_no_modify||5.013003|n
7a6cd05b 1265croak_nocontext|||vn
d1442cc4
TC
1266croak_popstack|||n
1267croak_sv||5.013001|
1268croak_xs_usage||5.010001|n
7a6cd05b 1269croak|||v
d1442cc4
TC
1270csighandler||5.009003|n
1271curmad|||
1272current_re_engine|||
1273curse|||
7a6cd05b
TC
1274custom_op_desc||5.007003|
1275custom_op_name||5.007003|
d1442cc4
TC
1276custom_op_register||5.013007|
1277custom_op_xop||5.013007|
1278cv_ckproto_len_flags|||
1279cv_clone_into|||
7a6cd05b 1280cv_clone|||
d1442cc4 1281cv_const_sv_or_av|||
7a6cd05b
TC
1282cv_const_sv||5.004000|
1283cv_dump|||
d1442cc4
TC
1284cv_forget_slab|||
1285cv_get_call_checker||5.013006|
1286cv_set_call_checker||5.013006|
7a6cd05b 1287cv_undef|||
d1442cc4
TC
1288cvgv_set|||
1289cvstash_set|||
7a6cd05b
TC
1290cx_dump||5.005000|
1291cx_dup|||
1292cxinc|||
d1442cc4 1293dAXMARK|5.009003||p
7a6cd05b
TC
1294dAX|5.007002||p
1295dITEMS|5.007002||p
1296dMARK|||
d1442cc4 1297dMULTICALL||5.009003|
7a6cd05b
TC
1298dMY_CXT_SV|5.007003||p
1299dMY_CXT|5.007003||p
1300dNOOP|5.006000||p
1301dORIGMARK|||
1302dSP|||
1303dTHR|5.004050||p
d1442cc4 1304dTHXR|5.019002||p
7a6cd05b
TC
1305dTHXa|5.006000||p
1306dTHXoa|5.006000||p
1307dTHX|5.006000||p
1308dUNDERBAR|5.009002||p
d1442cc4 1309dVAR|5.009003||p
7a6cd05b
TC
1310dXCPT|5.009002||p
1311dXSARGS|||
1312dXSI32|||
1313dXSTARG|5.006000||p
1314deb_curcv|||
1315deb_nocontext|||vn
1316deb_stack_all|||
1317deb_stack_n|||
1318debop||5.005000|
1319debprofdump||5.005000|
1320debprof|||
1321debstackptrs||5.007003|
1322debstack||5.007003|
d1442cc4 1323debug_start_match|||
7a6cd05b 1324deb||5.007003|v
d1442cc4 1325defelem_target|||
7a6cd05b 1326del_sv|||
d1442cc4
TC
1327delete_eval_scope|||
1328delimcpy||5.004000|n
1329deprecate_commaless_var_list|||
7a6cd05b 1330despatch_signals||5.007001|
d1442cc4 1331destroy_matcher|||
7a6cd05b 1332die_nocontext|||vn
d1442cc4
TC
1333die_sv||5.013001|
1334die_unwind|||
7a6cd05b
TC
1335die|||v
1336dirp_dup|||
1337div128|||
1338djSP|||
1339do_aexec5|||
1340do_aexec|||
1341do_aspawn|||
1342do_binmode||5.004050|
1343do_chomp|||
7a6cd05b 1344do_close|||
d1442cc4 1345do_delete_local|||
7a6cd05b
TC
1346do_dump_pad|||
1347do_eof|||
1348do_exec3|||
1349do_execfree|||
1350do_exec|||
1351do_gv_dump||5.006000|
1352do_gvgv_dump||5.006000|
1353do_hv_dump||5.006000|
1354do_ipcctl|||
1355do_ipcget|||
1356do_join|||
7a6cd05b
TC
1357do_magic_dump||5.006000|
1358do_msgrcv|||
1359do_msgsnd|||
d1442cc4 1360do_ncmp|||
7a6cd05b
TC
1361do_oddball|||
1362do_op_dump||5.006000|
d1442cc4 1363do_op_xmldump|||
7a6cd05b
TC
1364do_open9||5.006000|
1365do_openn||5.007001|
1366do_open||5.004000|
7a6cd05b 1367do_pmop_dump||5.006000|
d1442cc4 1368do_pmop_xmldump|||
7a6cd05b
TC
1369do_print|||
1370do_readline|||
1371do_seek|||
1372do_semop|||
1373do_shmio|||
d1442cc4 1374do_smartmatch|||
7a6cd05b
TC
1375do_spawn_nowait|||
1376do_spawn|||
1377do_sprintf|||
1378do_sv_dump||5.006000|
1379do_sysseek|||
1380do_tell|||
1381do_trans_complex_utf8|||
1382do_trans_complex|||
1383do_trans_count_utf8|||
1384do_trans_count|||
1385do_trans_simple_utf8|||
1386do_trans_simple|||
1387do_trans|||
1388do_vecget|||
1389do_vecset|||
1390do_vop|||
7a6cd05b
TC
1391docatch|||
1392doeval|||
1393dofile|||
1394dofindlabel|||
1395doform|||
1396doing_taint||5.008001|n
1397dooneliner|||
1398doopen_pm|||
1399doparseform|||
1400dopoptoeval|||
d1442cc4 1401dopoptogiven|||
7a6cd05b
TC
1402dopoptolabel|||
1403dopoptoloop|||
1404dopoptosub_at|||
d1442cc4
TC
1405dopoptowhen|||
1406doref||5.009003|
7a6cd05b
TC
1407dounwind|||
1408dowantarray|||
d1442cc4 1409dump_all_perl|||
7a6cd05b
TC
1410dump_all||5.006000|
1411dump_eval||5.006000|
d1442cc4 1412dump_exec_pos|||
7a6cd05b
TC
1413dump_fds|||
1414dump_form||5.006000|
1415dump_indent||5.006000|v
1416dump_mstats|||
d1442cc4 1417dump_packsubs_perl|||
7a6cd05b 1418dump_packsubs||5.006000|
d1442cc4 1419dump_sub_perl|||
7a6cd05b 1420dump_sub||5.006000|
d1442cc4
TC
1421dump_sv_child|||
1422dump_trie_interim_list|||
1423dump_trie_interim_table|||
1424dump_trie|||
7a6cd05b
TC
1425dump_vindent||5.006000|
1426dumpuntil|||
1427dup_attrlist|||
d1442cc4 1428emulate_cop_io|||
7a6cd05b
TC
1429eval_pv|5.006000||p
1430eval_sv|5.006000||p
d1442cc4 1431exec_failed|||
7a6cd05b
TC
1432expect_number|||
1433fbm_compile||5.005000|
1434fbm_instr||5.005000|
d1442cc4 1435feature_is_enabled|||
7a6cd05b
TC
1436filter_add|||
1437filter_del|||
1438filter_gets|||
1439filter_read|||
d1442cc4
TC
1440finalize_optree|||
1441finalize_op|||
1442find_and_forget_pmops|||
1443find_array_subscript|||
7a6cd05b
TC
1444find_beginning|||
1445find_byclass|||
d1442cc4 1446find_hash_subscript|||
7a6cd05b 1447find_in_my_stash|||
d1442cc4
TC
1448find_lexical_cv|||
1449find_runcv_where|||
1450find_runcv||5.008001|
1451find_rundefsv2|||
7a6cd05b 1452find_rundefsvoffset||5.009002|
d1442cc4 1453find_rundefsv||5.013002|
7a6cd05b
TC
1454find_script|||
1455find_uninit_var|||
d1442cc4
TC
1456first_symbol|||n
1457foldEQ_latin1||5.013008|n
1458foldEQ_locale||5.013002|n
1459foldEQ_utf8_flags||5.013010|
1460foldEQ_utf8||5.013002|
1461foldEQ||5.013002|n
7a6cd05b
TC
1462fold_constants|||
1463forbid_setid|||
d1442cc4 1464force_ident_maybe_lex|||
7a6cd05b
TC
1465force_ident|||
1466force_list|||
1467force_next|||
d1442cc4 1468force_strict_version|||
7a6cd05b
TC
1469force_version|||
1470force_word|||
d1442cc4 1471forget_pmop|||
7a6cd05b 1472form_nocontext|||vn
d1442cc4 1473form_short_octal_warning|||
7a6cd05b
TC
1474form||5.004000|v
1475fp_dup|||
1476fprintf_nocontext|||vn
1477free_global_struct|||
1478free_tied_hv_pool|||
1479free_tmps|||
1480gen_constant_list|||
d1442cc4
TC
1481get_and_check_backslash_N_name|||
1482get_aux_mg|||
7a6cd05b
TC
1483get_av|5.006000||p
1484get_context||5.006000|n
d1442cc4
TC
1485get_cvn_flags|5.009005||p
1486get_cvs|5.011000||p
7a6cd05b
TC
1487get_cv|5.006000||p
1488get_db_sub|||
1489get_debug_opts|||
1490get_hash_seed|||
1491get_hv|5.006000||p
d1442cc4
TC
1492get_invlist_iter_addr|||
1493get_invlist_offset_addr|||
1494get_invlist_previous_index_addr|||
7a6cd05b
TC
1495get_mstats|||
1496get_no_modify|||
1497get_num|||
1498get_op_descs||5.005000|
1499get_op_names||5.005000|
1500get_opargs|||
1501get_ppaddr||5.006000|
d1442cc4 1502get_re_arg|||
7a6cd05b
TC
1503get_sv|5.006000||p
1504get_vtbl||5.005030|
1505getcwd_sv||5.007002|
1506getenv_len|||
d1442cc4
TC
1507glob_2number|||
1508glob_assign_glob|||
1509glob_assign_ref|||
7a6cd05b
TC
1510gp_dup|||
1511gp_free|||
1512gp_ref|||
1513grok_bin|5.007003||p
d1442cc4
TC
1514grok_bslash_N|||
1515grok_bslash_c|||
1516grok_bslash_o|||
1517grok_bslash_x|||
7a6cd05b
TC
1518grok_hex|5.007003||p
1519grok_number|5.007002||p
1520grok_numeric_radix|5.007002||p
1521grok_oct|5.007003||p
1522group_end|||
1523gv_AVadd|||
1524gv_HVadd|||
1525gv_IOadd|||
d1442cc4
TC
1526gv_SVadd|||
1527gv_add_by_type||5.011000|
7a6cd05b 1528gv_autoload4||5.004000|
d1442cc4
TC
1529gv_autoload_pvn||5.015004|
1530gv_autoload_pv||5.015004|
1531gv_autoload_sv||5.015004|
7a6cd05b 1532gv_check|||
d1442cc4 1533gv_const_sv||5.009003|
7a6cd05b
TC
1534gv_dump||5.006000|
1535gv_efullname3||5.004000|
1536gv_efullname4||5.006001|
1537gv_efullname|||
1538gv_ename|||
d1442cc4 1539gv_fetchfile_flags||5.009005|
7a6cd05b
TC
1540gv_fetchfile|||
1541gv_fetchmeth_autoload||5.007003|
d1442cc4
TC
1542gv_fetchmeth_pv_autoload||5.015004|
1543gv_fetchmeth_pvn_autoload||5.015004|
1544gv_fetchmeth_pvn||5.015004|
1545gv_fetchmeth_pv||5.015004|
1546gv_fetchmeth_sv_autoload||5.015004|
1547gv_fetchmeth_sv||5.015004|
7a6cd05b 1548gv_fetchmethod_autoload||5.004000|
d1442cc4
TC
1549gv_fetchmethod_pv_flags||5.015004|
1550gv_fetchmethod_pvn_flags||5.015004|
1551gv_fetchmethod_sv_flags||5.015004|
7a6cd05b
TC
1552gv_fetchmethod|||
1553gv_fetchmeth|||
d1442cc4
TC
1554gv_fetchpvn_flags|5.009002||p
1555gv_fetchpvs|5.009004||p
7a6cd05b 1556gv_fetchpv|||
d1442cc4 1557gv_fetchsv|5.009002||p
7a6cd05b
TC
1558gv_fullname3||5.004000|
1559gv_fullname4||5.006001|
1560gv_fullname|||
1561gv_handler||5.007001|
d1442cc4
TC
1562gv_init_pvn||5.015004|
1563gv_init_pv||5.015004|
1564gv_init_svtype|||
1565gv_init_sv||5.015004|
7a6cd05b 1566gv_init|||
d1442cc4
TC
1567gv_magicalize_isa|||
1568gv_name_set||5.009004|
1569gv_stashpvn|5.004000||p
1570gv_stashpvs|5.009003||p
7a6cd05b
TC
1571gv_stashpv|||
1572gv_stashsv|||
d1442cc4
TC
1573gv_try_downgrade|||
1574handle_regex_sets|||
7a6cd05b
TC
1575he_dup|||
1576hek_dup|||
d1442cc4 1577hfree_next_entry|||
7a6cd05b
TC
1578hfreeentries|||
1579hsplit|||
d1442cc4 1580hv_assert|||
7a6cd05b 1581hv_auxinit|||
d1442cc4 1582hv_backreferences_p|||
7a6cd05b
TC
1583hv_clear_placeholders||5.009001|
1584hv_clear|||
d1442cc4
TC
1585hv_common_key_len||5.010000|
1586hv_common||5.010000|
1587hv_copy_hints_hv||5.009004|
7a6cd05b
TC
1588hv_delayfree_ent||5.004000|
1589hv_delete_common|||
1590hv_delete_ent||5.004000|
1591hv_delete|||
1592hv_eiter_p||5.009003|
1593hv_eiter_set||5.009003|
d1442cc4
TC
1594hv_ename_add|||
1595hv_ename_delete|||
7a6cd05b
TC
1596hv_exists_ent||5.004000|
1597hv_exists|||
7a6cd05b 1598hv_fetch_ent||5.004000|
d1442cc4 1599hv_fetchs|5.009003||p
7a6cd05b 1600hv_fetch|||
d1442cc4
TC
1601hv_fill||5.013002|
1602hv_free_ent_ret|||
7a6cd05b
TC
1603hv_free_ent||5.004000|
1604hv_iterinit|||
1605hv_iterkeysv||5.004000|
1606hv_iterkey|||
1607hv_iternext_flags||5.008000|
1608hv_iternextsv|||
1609hv_iternext|||
1610hv_iterval|||
d1442cc4 1611hv_kill_backrefs|||
7a6cd05b 1612hv_ksplit||5.004000|
d1442cc4 1613hv_magic_check|||n
7a6cd05b
TC
1614hv_magic|||
1615hv_name_set||5.009003|
1616hv_notallowed|||
1617hv_placeholders_get||5.009003|
d1442cc4 1618hv_placeholders_p|||
7a6cd05b 1619hv_placeholders_set||5.009003|
d1442cc4 1620hv_rand_set||5.017011|
7a6cd05b
TC
1621hv_riter_p||5.009003|
1622hv_riter_set||5.009003|
1623hv_scalar||5.009001|
1624hv_store_ent||5.004000|
1625hv_store_flags||5.008000|
d1442cc4 1626hv_stores|5.009004||p
7a6cd05b 1627hv_store|||
d1442cc4 1628hv_undef_flags|||
7a6cd05b
TC
1629hv_undef|||
1630ibcmp_locale||5.004000|
1631ibcmp_utf8||5.007003|
1632ibcmp|||
7a6cd05b 1633incline|||
d1442cc4
TC
1634incpush_if_exists|||
1635incpush_use_sep|||
7a6cd05b
TC
1636incpush|||
1637ingroup|||
1638init_argv_symbols|||
d1442cc4
TC
1639init_constants|||
1640init_dbargs|||
7a6cd05b
TC
1641init_debugger|||
1642init_global_struct|||
1643init_i18nl10n||5.006000|
1644init_i18nl14n||5.006000|
1645init_ids|||
1646init_interp|||
7a6cd05b
TC
1647init_main_stash|||
1648init_perllib|||
1649init_postdump_symbols|||
1650init_predump_symbols|||
1651init_stacks||5.005000|
1652init_tm||5.007002|
d1442cc4
TC
1653inplace_aassign|||
1654instr|||n
7a6cd05b
TC
1655intro_my|||
1656intuit_method|||
1657intuit_more|||
1658invert|||
d1442cc4
TC
1659invlist_array|||
1660invlist_clone|||
1661invlist_extend|||
1662invlist_highest|||
1663invlist_is_iterating|||
1664invlist_iterfinish|||
1665invlist_iterinit|||
1666invlist_iternext|||
1667invlist_max|||
1668invlist_previous_index|||
1669invlist_set_len|||
1670invlist_set_previous_index|||
1671invlist_trim|||
1672invoke_exception_hook|||
7a6cd05b 1673io_close|||
d1442cc4
TC
1674isALNUMC|5.006000||p
1675isALNUM_lazy|||
1676isALPHANUMERIC||5.017008|
7a6cd05b 1677isALPHA|||
d1442cc4
TC
1678isASCII|5.006000|5.006000|p
1679isBLANK|5.006001||p
1680isCNTRL|5.006000|5.006000|p
7a6cd05b 1681isDIGIT|||
d1442cc4
TC
1682isFOO_lc|||
1683isFOO_utf8_lc|||
1684isGRAPH|5.006000||p
1685isGV_with_GP|5.009004||p
1686isIDCONT||5.017008|
1687isIDFIRST_lazy|||
1688isIDFIRST|||
7a6cd05b 1689isLOWER|||
d1442cc4
TC
1690isOCTAL||5.013005|
1691isPRINT|5.004000||p
1692isPSXSPC|5.006001||p
1693isPUNCT|5.006000||p
7a6cd05b
TC
1694isSPACE|||
1695isUPPER|||
d1442cc4
TC
1696isWORDCHAR||5.013006|
1697isXDIGIT|5.006000||p
7a6cd05b 1698is_an_int|||
d1442cc4
TC
1699is_ascii_string||5.011000|n
1700is_cur_LC_category_utf8|||
1701is_handle_constructor|||n
7a6cd05b
TC
1702is_list_assignment|||
1703is_lvalue_sub||5.007001|
1704is_uni_alnum_lc||5.006000|
d1442cc4
TC
1705is_uni_alnumc_lc||5.017007|
1706is_uni_alnumc||5.017007|
7a6cd05b
TC
1707is_uni_alnum||5.006000|
1708is_uni_alpha_lc||5.006000|
1709is_uni_alpha||5.006000|
1710is_uni_ascii_lc||5.006000|
1711is_uni_ascii||5.006000|
d1442cc4
TC
1712is_uni_blank_lc||5.017002|
1713is_uni_blank||5.017002|
7a6cd05b
TC
1714is_uni_cntrl_lc||5.006000|
1715is_uni_cntrl||5.006000|
1716is_uni_digit_lc||5.006000|
1717is_uni_digit||5.006000|
1718is_uni_graph_lc||5.006000|
1719is_uni_graph||5.006000|
1720is_uni_idfirst_lc||5.006000|
1721is_uni_idfirst||5.006000|
1722is_uni_lower_lc||5.006000|
1723is_uni_lower||5.006000|
1724is_uni_print_lc||5.006000|
1725is_uni_print||5.006000|
1726is_uni_punct_lc||5.006000|
1727is_uni_punct||5.006000|
1728is_uni_space_lc||5.006000|
1729is_uni_space||5.006000|
1730is_uni_upper_lc||5.006000|
1731is_uni_upper||5.006000|
1732is_uni_xdigit_lc||5.006000|
1733is_uni_xdigit||5.006000|
d1442cc4 1734is_utf8_alnumc||5.017007|
7a6cd05b
TC
1735is_utf8_alnum||5.006000|
1736is_utf8_alpha||5.006000|
1737is_utf8_ascii||5.006000|
d1442cc4
TC
1738is_utf8_blank||5.017002|
1739is_utf8_char_buf||5.015008|n
1740is_utf8_char_slow|||n
1741is_utf8_char||5.006000|n
7a6cd05b 1742is_utf8_cntrl||5.006000|
d1442cc4 1743is_utf8_common|||
7a6cd05b
TC
1744is_utf8_digit||5.006000|
1745is_utf8_graph||5.006000|
1746is_utf8_idcont||5.008000|
1747is_utf8_idfirst||5.006000|
1748is_utf8_lower||5.006000|
1749is_utf8_mark||5.006000|
d1442cc4
TC
1750is_utf8_perl_space||5.011001|
1751is_utf8_perl_word||5.011001|
1752is_utf8_posix_digit||5.011001|
7a6cd05b
TC
1753is_utf8_print||5.006000|
1754is_utf8_punct||5.006000|
1755is_utf8_space||5.006000|
d1442cc4
TC
1756is_utf8_string_loclen||5.009003|n
1757is_utf8_string_loc||5.008001|n
1758is_utf8_string||5.006001|n
7a6cd05b
TC
1759is_utf8_upper||5.006000|
1760is_utf8_xdigit||5.006000|
d1442cc4
TC
1761is_utf8_xidcont||5.013010|
1762is_utf8_xidfirst||5.013010|
7a6cd05b
TC
1763isa_lookup|||
1764items|||n
1765ix|||n
1766jmaybe|||
d1442cc4
TC
1767join_exact|||
1768keyword_plugin_standard|||
7a6cd05b
TC
1769keyword|||
1770leave_scope|||
d1442cc4
TC
1771lex_bufutf8||5.011002|
1772lex_discard_to||5.011002|
1773lex_grow_linestr||5.011002|
1774lex_next_chunk||5.011002|
1775lex_peek_unichar||5.011002|
1776lex_read_space||5.011002|
1777lex_read_to||5.011002|
1778lex_read_unichar||5.011002|
1779lex_start||5.009005|
1780lex_stuff_pvn||5.011002|
1781lex_stuff_pvs||5.013005|
1782lex_stuff_pv||5.013006|
1783lex_stuff_sv||5.011002|
1784lex_unstuff||5.011002|
7a6cd05b
TC
1785listkids|||
1786list|||
1787load_module_nocontext|||vn
d1442cc4 1788load_module|5.006000||pv
7a6cd05b 1789localize|||
d1442cc4 1790looks_like_bool|||
7a6cd05b
TC
1791looks_like_number|||
1792lop|||
1793mPUSHi|5.009002||p
1794mPUSHn|5.009002||p
1795mPUSHp|5.009002||p
d1442cc4 1796mPUSHs|5.010001||p
7a6cd05b
TC
1797mPUSHu|5.009002||p
1798mXPUSHi|5.009002||p
1799mXPUSHn|5.009002||p
1800mXPUSHp|5.009002||p
d1442cc4 1801mXPUSHs|5.010001||p
7a6cd05b 1802mXPUSHu|5.009002||p
d1442cc4
TC
1803mad_free|||
1804madlex|||
1805madparse|||
7a6cd05b 1806magic_clear_all_env|||
d1442cc4 1807magic_cleararylen_p|||
7a6cd05b 1808magic_clearenv|||
d1442cc4
TC
1809magic_clearhints|||
1810magic_clearhint|||
1811magic_clearisa|||
7a6cd05b
TC
1812magic_clearpack|||
1813magic_clearsig|||
d1442cc4 1814magic_copycallchecker|||
7a6cd05b
TC
1815magic_dump||5.006000|
1816magic_existspack|||
1817magic_freearylen_p|||
1818magic_freeovrld|||
7a6cd05b
TC
1819magic_getarylen|||
1820magic_getdefelem|||
7a6cd05b
TC
1821magic_getnkeys|||
1822magic_getpack|||
1823magic_getpos|||
1824magic_getsig|||
1825magic_getsubstr|||
1826magic_gettaint|||
1827magic_getuvar|||
1828magic_getvec|||
1829magic_get|||
1830magic_killbackrefs|||
d1442cc4
TC
1831magic_methcall1|||
1832magic_methcall|||v
7a6cd05b
TC
1833magic_methpack|||
1834magic_nextpack|||
1835magic_regdata_cnt|||
1836magic_regdatum_get|||
1837magic_regdatum_set|||
1838magic_scalarpack|||
1839magic_set_all_env|||
7a6cd05b 1840magic_setarylen|||
7a6cd05b
TC
1841magic_setcollxfrm|||
1842magic_setdbline|||
1843magic_setdefelem|||
1844magic_setenv|||
d1442cc4 1845magic_sethint|||
7a6cd05b
TC
1846magic_setisa|||
1847magic_setmglob|||
1848magic_setnkeys|||
1849magic_setpack|||
1850magic_setpos|||
1851magic_setregexp|||
1852magic_setsig|||
1853magic_setsubstr|||
1854magic_settaint|||
1855magic_setutf8|||
1856magic_setuvar|||
1857magic_setvec|||
1858magic_set|||
1859magic_sizepack|||
1860magic_wipepack|||
d1442cc4
TC
1861make_matcher|||
1862make_trie_failtable|||
7a6cd05b 1863make_trie|||
d1442cc4 1864malloc_good_size|||n
7a6cd05b
TC
1865malloced_size|||n
1866malloc||5.007002|n
1867markstack_grow|||
d1442cc4
TC
1868matcher_matches_sv|||
1869mayberelocate|||
7a6cd05b 1870measure_struct|||
d1442cc4 1871memEQs|5.009005||p
7a6cd05b 1872memEQ|5.004000||p
d1442cc4 1873memNEs|5.009005||p
7a6cd05b
TC
1874memNE|5.004000||p
1875mem_collxfrm|||
d1442cc4 1876mem_log_common|||n
7a6cd05b
TC
1877mess_alloc|||
1878mess_nocontext|||vn
d1442cc4 1879mess_sv||5.013001|
7a6cd05b
TC
1880mess||5.006000|v
1881method_common|||
1882mfree||5.007002|n
1883mg_clear|||
1884mg_copy|||
1885mg_dup|||
d1442cc4
TC
1886mg_find_mglob|||
1887mg_findext||5.013008|
7a6cd05b 1888mg_find|||
d1442cc4 1889mg_free_type||5.013006|
7a6cd05b
TC
1890mg_free|||
1891mg_get|||
1892mg_length||5.005000|
1893mg_localize|||
1894mg_magical|||
1895mg_set|||
1896mg_size||5.005000|
1897mini_mktime||5.007002|
d1442cc4 1898minus_v|||
7a6cd05b
TC
1899missingterm|||
1900mode_from_discipline|||
1901modkids|||
d1442cc4
TC
1902more_bodies|||
1903more_sv|||
7a6cd05b 1904moreswitches|||
d1442cc4
TC
1905mro_clean_isarev|||
1906mro_gather_and_rename|||
1907mro_get_from_name||5.010001|
1908mro_get_linear_isa_dfs|||
1909mro_get_linear_isa||5.009005|
1910mro_get_private_data||5.010001|
1911mro_isa_changed_in|||
1912mro_meta_dup|||
1913mro_meta_init|||
1914mro_method_changed_in||5.009005|
1915mro_package_moved|||
1916mro_register||5.010001|
1917mro_set_mro||5.010001|
1918mro_set_private_data||5.010001|
7a6cd05b
TC
1919mul128|||
1920mulexp10|||n
1921my_atof2||5.007002|
1922my_atof||5.006000|
1923my_attrs|||
1924my_bcopy|||n
7a6cd05b
TC
1925my_bzero|||n
1926my_chsize|||
d1442cc4
TC
1927my_clearenv|||
1928my_cxt_index|||
1929my_cxt_init|||
1930my_dirfd||5.009005|
7a6cd05b
TC
1931my_exit_jump|||
1932my_exit|||
1933my_failure_exit||5.004000|
1934my_fflush_all||5.006000|
1935my_fork||5.007003|n
7a6cd05b 1936my_kid|||
d1442cc4
TC
1937my_lstat_flags|||
1938my_lstat||5.019003|
1939my_memcmp|||n
1940my_memset||5.004000|n
7a6cd05b
TC
1941my_pclose||5.004000|
1942my_popen_list||5.007001|
1943my_popen||5.004000|
1944my_setenv|||
d1442cc4 1945my_snprintf|5.009004||pvn
7a6cd05b 1946my_socketpair||5.007003|n
d1442cc4
TC
1947my_sprintf|5.009003||pvn
1948my_stat_flags|||
1949my_stat||5.019003|
7a6cd05b 1950my_strftime||5.007002|
d1442cc4
TC
1951my_strlcat|5.009004||pn
1952my_strlcpy|5.009004||pn
7a6cd05b 1953my_unexec|||
d1442cc4
TC
1954my_vsnprintf||5.009004|n
1955need_utf8|||n
7a6cd05b
TC
1956newANONATTRSUB||5.006000|
1957newANONHASH|||
1958newANONLIST|||
1959newANONSUB|||
1960newASSIGNOP|||
d1442cc4 1961newATTRSUB_flags|||
7a6cd05b
TC
1962newATTRSUB||5.006000|
1963newAVREF|||
1964newAV|||
1965newBINOP|||
1966newCONDOP|||
d1442cc4
TC
1967newCONSTSUB_flags||5.015006|
1968newCONSTSUB|5.004050||p
7a6cd05b
TC
1969newCVREF|||
1970newDEFSVOP|||
1971newFORM|||
d1442cc4
TC
1972newFOROP||5.013007|
1973newGIVENOP||5.009003|
1974newGIVWHENOP|||
1975newGP|||
7a6cd05b
TC
1976newGVOP|||
1977newGVREF|||
d1442cc4 1978newGVgen_flags||5.015004|
7a6cd05b
TC
1979newGVgen|||
1980newHVREF|||
1981newHVhv||5.005000|
1982newHV|||
1983newIO|||
1984newLISTOP|||
1985newLOGOP|||
1986newLOOPEX|||
1987newLOOPOP|||
d1442cc4
TC
1988newMADPROP|||
1989newMADsv|||
1990newMYSUB||5.017004|
7a6cd05b
TC
1991newNULLLIST|||
1992newOP|||
d1442cc4 1993newPADOP|||
7a6cd05b
TC
1994newPMOP|||
1995newPROG|||
1996newPVOP|||
1997newRANGE|||
1998newRV_inc|5.004000||p
d1442cc4 1999newRV_noinc|5.004000||p
7a6cd05b
TC
2000newRV|||
2001newSLICEOP|||
2002newSTATEOP|||
d1442cc4 2003newSTUB|||
7a6cd05b
TC
2004newSUB|||
2005newSVOP|||
2006newSVREF|||
d1442cc4 2007newSV_type|5.009005||p
7a6cd05b
TC
2008newSVhek||5.009003|
2009newSViv|||
2010newSVnv|||
d1442cc4
TC
2011newSVpadname||5.017004|
2012newSVpv_share||5.013006|
7a6cd05b
TC
2013newSVpvf_nocontext|||vn
2014newSVpvf||5.004000|v
d1442cc4
TC
2015newSVpvn_flags|5.010001||p
2016newSVpvn_share|5.007001||p
2017newSVpvn_utf8|5.010001||p
2018newSVpvn|5.004050||p
2019newSVpvs_flags|5.010001||p
2020newSVpvs_share|5.009003||p
2021newSVpvs|5.009003||p
7a6cd05b
TC
2022newSVpv|||
2023newSVrv|||
2024newSVsv|||
2025newSVuv|5.006000||p
2026newSV|||
d1442cc4 2027newTOKEN|||
7a6cd05b 2028newUNOP|||
d1442cc4
TC
2029newWHENOP||5.009003|
2030newWHILEOP||5.013007|
2031newXS_flags||5.009004|
2032newXS_len_flags|||
7a6cd05b
TC
2033newXSproto||5.006000|
2034newXS||5.006000|
2035new_collate||5.006000|
2036new_constant|||
2037new_ctype||5.006000|
2038new_he|||
2039new_logop|||
2040new_numeric||5.006000|
2041new_stackinfo||5.005000|
2042new_version||5.009000|
d1442cc4 2043new_warnings_bitfield|||
7a6cd05b
TC
2044next_symbol|||
2045nextargv|||
2046nextchar|||
d1442cc4 2047ninstr|||n
7a6cd05b
TC
2048no_bareword_allowed|||
2049no_fh_allowed|||
2050no_op|||
2051not_a_number|||
d1442cc4 2052not_incrementable|||
7a6cd05b
TC
2053nothreadhook||5.008000|
2054nuke_stacks|||
2055num_overflow|||n
2056oopsAV|||
7a6cd05b 2057oopsHV|||
d1442cc4
TC
2058op_append_elem||5.013006|
2059op_append_list||5.013006|
7a6cd05b
TC
2060op_clear|||
2061op_const_sv|||
d1442cc4 2062op_contextualize||5.013006|
7a6cd05b
TC
2063op_dump||5.006000|
2064op_free|||
d1442cc4
TC
2065op_getmad_weak|||
2066op_getmad|||
2067op_integerize|||
2068op_linklist||5.013006|
2069op_lvalue_flags|||
2070op_lvalue||5.013007|
7a6cd05b 2071op_null||5.007002|
d1442cc4
TC
2072op_prepend_elem||5.013006|
2073op_refcnt_dec|||
2074op_refcnt_inc|||
7a6cd05b
TC
2075op_refcnt_lock||5.009002|
2076op_refcnt_unlock||5.009002|
d1442cc4
TC
2077op_scope||5.013007|
2078op_std_init|||
2079op_unscope|||
2080op_xmldump|||
7a6cd05b 2081open_script|||
d1442cc4
TC
2082opslab_force_free|||
2083opslab_free_nopad|||
2084opslab_free|||
7a6cd05b
TC
2085pMY_CXT_|5.007003||p
2086pMY_CXT|5.007003||p
2087pTHX_|5.006000||p
2088pTHX|5.006000||p
d1442cc4 2089packWARN|5.007003||p
7a6cd05b
TC
2090pack_cat||5.007003|
2091pack_rec|||
d1442cc4 2092package_version|||
7a6cd05b
TC
2093package|||
2094packlist||5.008001|
d1442cc4
TC
2095pad_add_anon||5.008001|
2096pad_add_name_pvn||5.015001|
2097pad_add_name_pvs||5.015001|
2098pad_add_name_pv||5.015001|
2099pad_add_name_sv||5.015001|
2100pad_alloc_name|||
7a6cd05b
TC
2101pad_alloc|||
2102pad_block_start|||
2103pad_check_dup|||
d1442cc4 2104pad_compname_type||5.009003|
7a6cd05b 2105pad_findlex|||
d1442cc4
TC
2106pad_findmy_pvn||5.015001|
2107pad_findmy_pvs||5.015001|
2108pad_findmy_pv||5.015001|
2109pad_findmy_sv||5.015001|
7a6cd05b
TC
2110pad_fixup_inner_anons|||
2111pad_free|||
2112pad_leavemy|||
d1442cc4
TC
2113pad_new||5.008001|
2114pad_peg|||n
7a6cd05b
TC
2115pad_push|||
2116pad_reset|||
2117pad_setsv|||
2118pad_sv|||
2119pad_swipe|||
d1442cc4
TC
2120pad_tidy||5.008001|
2121padlist_dup|||
2122padlist_store|||
2123parse_arithexpr||5.013008|
2124parse_barestmt||5.013007|
2125parse_block||5.013007|
7a6cd05b 2126parse_body|||
d1442cc4
TC
2127parse_fullexpr||5.013008|
2128parse_fullstmt||5.013005|
2129parse_ident|||
2130parse_label||5.013007|
2131parse_listexpr||5.013008|
2132parse_lparen_question_flags|||
2133parse_stmtseq||5.013006|
2134parse_termexpr||5.013008|
7a6cd05b 2135parse_unicode_opts|||
d1442cc4
TC
2136parser_dup|||
2137parser_free_nexttoke_ops|||
2138parser_free|||
2139path_is_searchable|||n
7a6cd05b
TC
2140peep|||
2141pending_ident|||
2142perl_alloc_using|||n
2143perl_alloc|||n
2144perl_clone_using|||n
2145perl_clone|||n
2146perl_construct|||n
2147perl_destruct||5.007003|n
2148perl_free|||n
2149perl_parse||5.006000|n
2150perl_run|||n
2151pidgone|||
d1442cc4 2152pm_description|||
7a6cd05b 2153pmop_dump||5.006000|
d1442cc4 2154pmop_xmldump|||
7a6cd05b
TC
2155pmruntime|||
2156pmtrans|||
2157pop_scope|||
d1442cc4
TC
2158populate_isa|||v
2159pregcomp||5.009005|
7a6cd05b 2160pregexec|||
d1442cc4 2161pregfree2||5.011000|
7a6cd05b 2162pregfree|||
d1442cc4
TC
2163prepend_madprops|||
2164prescan_version||5.011004|
2165printbuf|||
7a6cd05b 2166printf_nocontext|||vn
d1442cc4
TC
2167process_special_blocks|||
2168ptr_hash|||n
2169ptr_table_clear||5.009005|
2170ptr_table_fetch||5.009005|
2171ptr_table_find|||n
2172ptr_table_free||5.009005|
2173ptr_table_new||5.009005|
2174ptr_table_split||5.009005|
2175ptr_table_store||5.009005|
7a6cd05b
TC
2176push_scope|||
2177put_byte|||
d1442cc4
TC
2178put_latin1_charclass_innards|||
2179pv_display|5.006000||p
2180pv_escape|5.009004||p
2181pv_pretty|5.009004||p
7a6cd05b
TC
2182pv_uni_display||5.007003|
2183qerror|||
d1442cc4
TC
2184qsortsvu|||
2185re_compile||5.009005|
7a6cd05b 2186re_croak2|||
d1442cc4
TC
2187re_dup_guts|||
2188re_intuit_start||5.019001|
7a6cd05b 2189re_intuit_string||5.006000|
d1442cc4
TC
2190re_op_compile|||
2191readpipe_override|||
7a6cd05b 2192realloc||5.007002|n
d1442cc4
TC
2193reentrant_free||5.019003|
2194reentrant_init||5.019003|
2195reentrant_retry||5.019003|vn
2196reentrant_size||5.019003|
2197ref_array_or_hash|||
2198refcounted_he_chain_2hv|||
2199refcounted_he_fetch_pvn|||
2200refcounted_he_fetch_pvs|||
2201refcounted_he_fetch_pv|||
2202refcounted_he_fetch_sv|||
2203refcounted_he_free|||
2204refcounted_he_inc|||
2205refcounted_he_new_pvn|||
2206refcounted_he_new_pvs|||
2207refcounted_he_new_pv|||
2208refcounted_he_new_sv|||
2209refcounted_he_value|||
7a6cd05b
TC
2210refkids|||
2211refto|||
d1442cc4
TC
2212ref||5.019003|
2213reg_check_named_buff_matched|||
2214reg_named_buff_all||5.009005|
2215reg_named_buff_exists||5.009005|
2216reg_named_buff_fetch||5.009005|
2217reg_named_buff_firstkey||5.009005|
2218reg_named_buff_iter|||
2219reg_named_buff_nextkey||5.009005|
2220reg_named_buff_scalar||5.009005|
2221reg_named_buff|||
7a6cd05b 2222reg_node|||
d1442cc4
TC
2223reg_numbered_buff_fetch|||
2224reg_numbered_buff_length|||
2225reg_numbered_buff_store|||
2226reg_qr_package|||
2227reg_recode|||
2228reg_scan_name|||
2229reg_skipcomment|||
2230reg_temp_copy|||
7a6cd05b
TC
2231reganode|||
2232regatom|||
2233regbranch|||
d1442cc4 2234regclass_swash||5.009004|
7a6cd05b 2235regclass|||
7a6cd05b
TC
2236regcppop|||
2237regcppush|||
2238regcurly|||
d1442cc4
TC
2239regdump_extflags|||
2240regdump_intflags|||
7a6cd05b 2241regdump||5.005000|
d1442cc4 2242regdupe_internal|||
7a6cd05b 2243regexec_flags||5.005000|
d1442cc4
TC
2244regfree_internal||5.009005|
2245reghop3|||n
2246reghop4|||n
2247reghopmaybe3|||n
7a6cd05b
TC
2248reginclass|||
2249reginitcolors||5.006000|
2250reginsert|||
2251regmatch|||
2252regnext||5.005000|
d1442cc4 2253regpatws|||n
7a6cd05b
TC
2254regpiece|||
2255regpposixcc|||
2256regprop|||
7a6cd05b 2257regrepeat|||
d1442cc4 2258regtail_study|||
7a6cd05b
TC
2259regtail|||
2260regtry|||
2261reguni|||
d1442cc4 2262regwhite|||n
7a6cd05b 2263reg|||
d1442cc4 2264repeatcpy|||n
7a6cd05b 2265report_evil_fh|||
d1442cc4 2266report_redefined_cv|||
7a6cd05b 2267report_uninit|||
d1442cc4 2268report_wrongway_fh|||
7a6cd05b 2269require_pv||5.006000|
d1442cc4
TC
2270require_tie_mod|||
2271restore_magic|||
2272rninstr|||n
2273rpeep|||
7a6cd05b
TC
2274rsignal_restore|||
2275rsignal_save|||
2276rsignal_state||5.004000|
2277rsignal||5.004000|
2278run_body|||
d1442cc4 2279run_user_filter|||
7a6cd05b
TC
2280runops_debug||5.005000|
2281runops_standard||5.005000|
d1442cc4 2282rv2cv_op_cv||5.013006|
7a6cd05b
TC
2283rvpv_dup|||
2284rxres_free|||
2285rxres_restore|||
2286rxres_save|||
2287safesyscalloc||5.006000|n
2288safesysfree||5.006000|n
2289safesysmalloc||5.006000|n
2290safesysrealloc||5.006000|n
2291same_dirent|||
2292save_I16||5.004000|
2293save_I32|||
2294save_I8||5.006000|
d1442cc4
TC
2295save_adelete||5.011000|
2296save_aelem_flags||5.011000|
7a6cd05b
TC
2297save_aelem||5.004050|
2298save_alloc||5.006000|
2299save_aptr|||
2300save_ary|||
2301save_bool||5.008001|
2302save_clearsv|||
2303save_delete|||
2304save_destructor_x||5.006000|
2305save_destructor||5.006000|
2306save_freeop|||
2307save_freepv|||
2308save_freesv|||
2309save_generic_pvref||5.006001|
2310save_generic_svref||5.005030|
2311save_gp||5.004000|
2312save_hash|||
d1442cc4
TC
2313save_hdelete||5.011000|
2314save_hek_flags|||n
2315save_helem_flags||5.011000|
7a6cd05b 2316save_helem||5.004050|
d1442cc4 2317save_hints||5.010001|
7a6cd05b
TC
2318save_hptr|||
2319save_int|||
2320save_item|||
2321save_iv||5.005000|
2322save_lines|||
2323save_list|||
2324save_long|||
d1442cc4 2325save_magic_flags|||
7a6cd05b
TC
2326save_mortalizesv||5.007001|
2327save_nogv|||
d1442cc4
TC
2328save_op||5.005000|
2329save_padsv_and_mortalize||5.010001|
7a6cd05b 2330save_pptr|||
d1442cc4
TC
2331save_pushi32ptr||5.010001|
2332save_pushptri32ptr|||
2333save_pushptrptr||5.010001|
2334save_pushptr||5.010001|
7a6cd05b
TC
2335save_re_context||5.006000|
2336save_scalar_at|||
2337save_scalar|||
2338save_set_svflags||5.009000|
2339save_shared_pvref||5.007003|
2340save_sptr|||
2341save_svref|||
7a6cd05b
TC
2342save_vptr||5.006000|
2343savepvn|||
d1442cc4 2344savepvs||5.009003|
7a6cd05b 2345savepv|||
d1442cc4
TC
2346savesharedpvn||5.009005|
2347savesharedpvs||5.013006|
7a6cd05b 2348savesharedpv||5.007003|
d1442cc4 2349savesharedsvpv||5.013006|
7a6cd05b
TC
2350savestack_grow_cnt||5.008001|
2351savestack_grow|||
2352savesvpv||5.009002|
2353sawparens|||
d1442cc4 2354scalar_mod_type|||n
7a6cd05b
TC
2355scalarboolean|||
2356scalarkids|||
2357scalarseq|||
2358scalarvoid|||
2359scalar|||
2360scan_bin||5.006000|
2361scan_commit|||
2362scan_const|||
2363scan_formline|||
2364scan_heredoc|||
2365scan_hex|||
2366scan_ident|||
2367scan_inputsymbol|||
2368scan_num||5.007001|
2369scan_oct|||
2370scan_pat|||
2371scan_str|||
2372scan_subst|||
2373scan_trans|||
2374scan_version||5.009001|
d1442cc4 2375scan_vstring||5.009005|
7a6cd05b 2376scan_word|||
7a6cd05b 2377screaminstr||5.005000|
d1442cc4
TC
2378search_const|||
2379seed||5.008001|
2380sequence_num|||
7a6cd05b 2381set_context||5.006000|n
7a6cd05b
TC
2382set_numeric_local||5.006000|
2383set_numeric_radix||5.006000|
2384set_numeric_standard||5.006000|
2385setdefout|||
7a6cd05b 2386share_hek_flags|||
d1442cc4 2387share_hek||5.004000|
7a6cd05b
TC
2388si_dup|||
2389sighandler|||n
2390simplify_sort|||
d1442cc4
TC
2391skipspace0|||
2392skipspace1|||
2393skipspace2|||
2394skipspace_flags|||
2395softref2xv|||
2396sortcv_stacked|||
2397sortcv_xsub|||
2398sortcv|||
2399sortsv_flags||5.009003|
7a6cd05b 2400sortsv||5.007003|
d1442cc4 2401space_join_names_mortal|||
7a6cd05b
TC
2402ss_dup|||
2403stack_grow|||
d1442cc4 2404start_force|||
7a6cd05b
TC
2405start_glob|||
2406start_subparse||5.004000|
7a6cd05b
TC
2407stdize_locale|||
2408strEQ|||
2409strGE|||
2410strGT|||
2411strLE|||
2412strLT|||
2413strNE|||
2414str_to_version||5.006000|
d1442cc4 2415strip_return|||
7a6cd05b
TC
2416strnEQ|||
2417strnNE|||
2418study_chunk|||
2419sub_crush_depth|||
2420sublex_done|||
2421sublex_push|||
2422sublex_start|||
d1442cc4 2423sv_2bool_flags||5.013006|
7a6cd05b
TC
2424sv_2bool|||
2425sv_2cv|||
2426sv_2io|||
d1442cc4 2427sv_2iuv_common|||
7a6cd05b
TC
2428sv_2iuv_non_preserve|||
2429sv_2iv_flags||5.009001|
2430sv_2iv|||
2431sv_2mortal|||
d1442cc4
TC
2432sv_2num|||
2433sv_2nv_flags||5.013001|
2434sv_2pv_flags|5.007002||p
7a6cd05b 2435sv_2pv_nolen|5.006000||p
d1442cc4 2436sv_2pvbyte_nolen|5.006000||p
7a6cd05b
TC
2437sv_2pvbyte|5.006000||p
2438sv_2pvutf8_nolen||5.006000|
2439sv_2pvutf8||5.006000|
2440sv_2pv|||
2441sv_2uv_flags||5.009001|
2442sv_2uv|5.004000||p
2443sv_add_arena|||
2444sv_add_backref|||
2445sv_backoff|||
2446sv_bless|||
2447sv_cat_decode||5.008001|
d1442cc4
TC
2448sv_catpv_flags||5.013006|
2449sv_catpv_mg|5.004050||p
2450sv_catpv_nomg||5.013006|
7a6cd05b
TC
2451sv_catpvf_mg_nocontext|||pvn
2452sv_catpvf_mg|5.006000|5.004000|pv
2453sv_catpvf_nocontext|||vn
2454sv_catpvf||5.004000|v
2455sv_catpvn_flags||5.007002|
d1442cc4 2456sv_catpvn_mg|5.004050||p
7a6cd05b
TC
2457sv_catpvn_nomg|5.007002||p
2458sv_catpvn|||
d1442cc4
TC
2459sv_catpvs_flags||5.013006|
2460sv_catpvs_mg||5.013006|
2461sv_catpvs_nomg||5.013006|
2462sv_catpvs|5.009003||p
7a6cd05b
TC
2463sv_catpv|||
2464sv_catsv_flags||5.007002|
d1442cc4 2465sv_catsv_mg|5.004050||p
7a6cd05b
TC
2466sv_catsv_nomg|5.007002||p
2467sv_catsv|||
d1442cc4
TC
2468sv_catxmlpvn|||
2469sv_catxmlpv|||
2470sv_catxmlsv|||
7a6cd05b
TC
2471sv_chop|||
2472sv_clean_all|||
2473sv_clean_objs|||
2474sv_clear|||
d1442cc4
TC
2475sv_cmp_flags||5.013006|
2476sv_cmp_locale_flags||5.013006|
7a6cd05b
TC
2477sv_cmp_locale||5.004000|
2478sv_cmp|||
d1442cc4 2479sv_collxfrm_flags||5.013006|
7a6cd05b 2480sv_collxfrm|||
d1442cc4
TC
2481sv_copypv_flags||5.017002|
2482sv_copypv_nomg||5.017002|
2483sv_copypv|||
2484sv_dec_nomg||5.013002|
7a6cd05b
TC
2485sv_dec|||
2486sv_del_backref|||
d1442cc4
TC
2487sv_derived_from_pvn||5.015004|
2488sv_derived_from_pv||5.015004|
2489sv_derived_from_sv||5.015004|
7a6cd05b 2490sv_derived_from||5.004000|
d1442cc4
TC
2491sv_destroyable||5.010000|
2492sv_display|||
2493sv_does_pvn||5.015004|
2494sv_does_pv||5.015004|
2495sv_does_sv||5.015004|
2496sv_does||5.009004|
7a6cd05b 2497sv_dump|||
d1442cc4
TC
2498sv_dup_common|||
2499sv_dup_inc_multiple|||
2500sv_dup_inc|||
7a6cd05b 2501sv_dup|||
d1442cc4 2502sv_eq_flags||5.013006|
7a6cd05b 2503sv_eq|||
d1442cc4 2504sv_exp_grow|||
7a6cd05b
TC
2505sv_force_normal_flags||5.007001|
2506sv_force_normal||5.006000|
2507sv_free2|||
2508sv_free_arenas|||
2509sv_free|||
2510sv_gets||5.004000|
2511sv_grow|||
d1442cc4
TC
2512sv_i_ncmp|||
2513sv_inc_nomg||5.013002|
7a6cd05b 2514sv_inc|||
d1442cc4 2515sv_insert_flags||5.010001|
7a6cd05b
TC
2516sv_insert|||
2517sv_isa|||
2518sv_isobject|||
2519sv_iv||5.005000|
d1442cc4
TC
2520sv_kill_backrefs|||
2521sv_len_utf8_nomg|||
7a6cd05b
TC
2522sv_len_utf8||5.006000|
2523sv_len|||
d1442cc4
TC
2524sv_magic_portable|5.019003|5.004000|p
2525sv_magicext_mglob|||
7a6cd05b
TC
2526sv_magicext||5.007003|
2527sv_magic|||
d1442cc4 2528sv_mortalcopy_flags|||
7a6cd05b 2529sv_mortalcopy|||
d1442cc4 2530sv_ncmp|||
7a6cd05b
TC
2531sv_newmortal|||
2532sv_newref|||
2533sv_nolocking||5.007003|
2534sv_nosharing||5.007003|
d1442cc4 2535sv_nounlocking|||
7a6cd05b
TC
2536sv_nv||5.005000|
2537sv_peek||5.005000|
d1442cc4
TC
2538sv_pos_b2u_flags||5.019003|
2539sv_pos_b2u_midway|||
7a6cd05b 2540sv_pos_b2u||5.006000|
d1442cc4
TC
2541sv_pos_u2b_cached|||
2542sv_pos_u2b_flags||5.011005|
2543sv_pos_u2b_forwards|||n
2544sv_pos_u2b_midway|||n
7a6cd05b
TC
2545sv_pos_u2b||5.006000|
2546sv_pvbyten_force||5.006000|
2547sv_pvbyten||5.006000|
2548sv_pvbyte||5.006000|
d1442cc4
TC
2549sv_pvn_force_flags|5.007002||p
2550sv_pvn_force|||
2551sv_pvn_nomg|5.007003|5.005000|p
2552sv_pvn||5.005000|
7a6cd05b
TC
2553sv_pvutf8n_force||5.006000|
2554sv_pvutf8n||5.006000|
2555sv_pvutf8||5.006000|
2556sv_pv||5.006000|
2557sv_recode_to_utf8||5.007003|
2558sv_reftype|||
d1442cc4 2559sv_ref|||
7a6cd05b 2560sv_release_COW|||
7a6cd05b
TC
2561sv_replace|||
2562sv_report_used|||
d1442cc4 2563sv_resetpvn|||
7a6cd05b
TC
2564sv_reset|||
2565sv_rvweaken||5.006000|
d1442cc4
TC
2566sv_sethek|||
2567sv_setiv_mg|5.004050||p
7a6cd05b
TC
2568sv_setiv|||
2569sv_setnv_mg|5.006000||p
2570sv_setnv|||
d1442cc4 2571sv_setpv_mg|5.004050||p
7a6cd05b
TC
2572sv_setpvf_mg_nocontext|||pvn
2573sv_setpvf_mg|5.006000|5.004000|pv
2574sv_setpvf_nocontext|||vn
2575sv_setpvf||5.004000|v
2576sv_setpviv_mg||5.008001|
2577sv_setpviv||5.008001|
d1442cc4 2578sv_setpvn_mg|5.004050||p
7a6cd05b 2579sv_setpvn|||
d1442cc4
TC
2580sv_setpvs_mg||5.013006|
2581sv_setpvs|5.009004||p
7a6cd05b
TC
2582sv_setpv|||
2583sv_setref_iv|||
2584sv_setref_nv|||
2585sv_setref_pvn|||
d1442cc4 2586sv_setref_pvs||5.019003|
7a6cd05b
TC
2587sv_setref_pv|||
2588sv_setref_uv||5.007001|
2589sv_setsv_cow|||
2590sv_setsv_flags||5.007002|
d1442cc4 2591sv_setsv_mg|5.004050||p
7a6cd05b
TC
2592sv_setsv_nomg|5.007002||p
2593sv_setsv|||
d1442cc4
TC
2594sv_setuv_mg|5.004050||p
2595sv_setuv|5.004000||p
7a6cd05b
TC
2596sv_tainted||5.004000|
2597sv_taint||5.004000|
2598sv_true||5.005000|
2599sv_unglob|||
2600sv_uni_display||5.007003|
d1442cc4 2601sv_unmagicext||5.013008|
7a6cd05b
TC
2602sv_unmagic|||
2603sv_unref_flags||5.007001|
2604sv_unref|||
2605sv_untaint||5.004000|
2606sv_upgrade|||
d1442cc4
TC
2607sv_usepvn_flags||5.009004|
2608sv_usepvn_mg|5.004050||p
7a6cd05b
TC
2609sv_usepvn|||
2610sv_utf8_decode||5.006000|
2611sv_utf8_downgrade||5.006000|
2612sv_utf8_encode||5.006000|
d1442cc4 2613sv_utf8_upgrade_flags_grow||5.011000|
7a6cd05b 2614sv_utf8_upgrade_flags||5.007002|
d1442cc4 2615sv_utf8_upgrade_nomg||5.007002|
7a6cd05b 2616sv_utf8_upgrade||5.007001|
d1442cc4 2617sv_uv|5.005000||p
7a6cd05b 2618sv_vcatpvf_mg|5.006000|5.004000|p
d1442cc4 2619sv_vcatpvfn_flags||5.017002|
7a6cd05b
TC
2620sv_vcatpvfn||5.004000|
2621sv_vcatpvf|5.006000|5.004000|p
2622sv_vsetpvf_mg|5.006000|5.004000|p
2623sv_vsetpvfn||5.004000|
2624sv_vsetpvf|5.006000|5.004000|p
d1442cc4 2625sv_xmlpeek|||
7a6cd05b
TC
2626svtype|||
2627swallow_bom|||
2628swash_fetch||5.007002|
2629swash_init||5.006000|
d1442cc4
TC
2630swatch_get|||
2631sys_init3||5.010000|n
2632sys_init||5.010000|n
7a6cd05b
TC
2633sys_intern_clear|||
2634sys_intern_dup|||
2635sys_intern_init|||
d1442cc4 2636sys_term||5.010000|n
7a6cd05b
TC
2637taint_env|||
2638taint_proper|||
d1442cc4 2639tied_method|||v
7a6cd05b 2640tmps_grow||5.006000|
d1442cc4
TC
2641toFOLD_uni||5.007003|
2642toFOLD_utf8||5.019001|
2643toFOLD||5.019001|
2644toLOWER_L1||5.019001|
2645toLOWER_LC||5.004000|
2646toLOWER_uni||5.007003|
2647toLOWER_utf8||5.015007|
7a6cd05b 2648toLOWER|||
d1442cc4
TC
2649toTITLE_uni||5.007003|
2650toTITLE_utf8||5.015007|
2651toTITLE||5.019001|
2652toUPPER_uni||5.007003|
2653toUPPER_utf8||5.015007|
2654toUPPER||5.004000|
7a6cd05b 2655to_byte_substr|||
d1442cc4 2656to_lower_latin1|||
7a6cd05b
TC
2657to_uni_fold||5.007003|
2658to_uni_lower_lc||5.006000|
2659to_uni_lower||5.007003|
2660to_uni_title_lc||5.006000|
2661to_uni_title||5.007003|
2662to_uni_upper_lc||5.006000|
2663to_uni_upper||5.007003|
2664to_utf8_case||5.007003|
d1442cc4
TC
2665to_utf8_fold||5.015007|
2666to_utf8_lower||5.015007|
7a6cd05b 2667to_utf8_substr|||
d1442cc4
TC
2668to_utf8_title||5.015007|
2669to_utf8_upper||5.015007|
2670token_free|||
2671token_getmad|||
2672tokenize_use|||
7a6cd05b
TC
2673tokeq|||
2674tokereport|||
d1442cc4
TC
2675too_few_arguments_pv|||
2676too_few_arguments_sv|||
2677too_many_arguments_pv|||
2678too_many_arguments_sv|||
2679translate_substr_offsets|||
2680try_amagic_bin|||
2681try_amagic_un|||
2682uiv_2buf|||n
7a6cd05b
TC
2683unlnk|||
2684unpack_rec|||
2685unpack_str||5.007003|
2686unpackstring||5.008001|
d1442cc4 2687unreferenced_to_tmp_stack|||
7a6cd05b
TC
2688unshare_hek_or_pvn|||
2689unshare_hek|||
2690unsharepvn||5.004000|
d1442cc4
TC
2691unwind_handler_stack|||
2692update_debugger_info|||
2693upg_version||5.009005|
7a6cd05b
TC
2694usage|||
2695utf16_textfilter|||
2696utf16_to_utf8_reversed||5.006001|
2697utf16_to_utf8||5.006001|
7a6cd05b
TC
2698utf8_distance||5.006000|
2699utf8_hop||5.006000|
2700utf8_length||5.007001|
d1442cc4
TC
2701utf8_mg_len_cache_update|||
2702utf8_mg_pos_cache_update|||
7a6cd05b 2703utf8_to_bytes||5.006001|
d1442cc4 2704utf8_to_uvchr_buf||5.015009|
7a6cd05b 2705utf8_to_uvchr||5.007001|
d1442cc4 2706utf8_to_uvuni_buf||5.015009|
7a6cd05b 2707utf8_to_uvuni||5.007001|
d1442cc4 2708utf8n_to_uvchr|||
7a6cd05b
TC
2709utf8n_to_uvuni||5.007001|
2710utilize|||
2711uvchr_to_utf8_flags||5.007003|
d1442cc4 2712uvchr_to_utf8|||
7a6cd05b
TC
2713uvuni_to_utf8_flags||5.007003|
2714uvuni_to_utf8||5.007001|
d1442cc4
TC
2715valid_utf8_to_uvchr|||
2716valid_utf8_to_uvuni||5.015009|
2717validate_proto|||
7a6cd05b
TC
2718validate_suid|||
2719varname|||
2720vcmp||5.009000|
2721vcroak||5.006000|
2722vdeb||5.007003|
7a6cd05b
TC
2723vform||5.006000|
2724visit|||
2725vivify_defelem|||
2726vivify_ref|||
d1442cc4 2727vload_module|5.006000||p
7a6cd05b
TC
2728vmess||5.006000|
2729vnewSVpvf|5.006000|5.004000|p
2730vnormal||5.009002|
2731vnumify||5.009000|
2732vstringify||5.009000|
d1442cc4 2733vverify||5.009003|
7a6cd05b
TC
2734vwarner||5.006000|
2735vwarn||5.006000|
2736wait4pid|||
2737warn_nocontext|||vn
d1442cc4 2738warn_sv||5.013001|
7a6cd05b 2739warner_nocontext|||vn
d1442cc4 2740warner|5.006000|5.004000|pv
7a6cd05b 2741warn|||v
d1442cc4 2742was_lvalue_sub|||
7a6cd05b 2743watch|||
d1442cc4
TC
2744whichsig_pvn||5.015004|
2745whichsig_pv||5.015004|
2746whichsig_sv||5.015004|
7a6cd05b 2747whichsig|||
d1442cc4
TC
2748win32_croak_not_implemented|||n
2749with_queued_errors|||
2750wrap_op_checker||5.015008|
7a6cd05b 2751write_to_stderr|||
d1442cc4
TC
2752xmldump_all_perl|||
2753xmldump_all|||
2754xmldump_attr|||
2755xmldump_eval|||
2756xmldump_form|||
2757xmldump_indent|||v
2758xmldump_packsubs_perl|||
2759xmldump_packsubs|||
2760xmldump_sub_perl|||
2761xmldump_sub|||
2762xmldump_vindent|||
2763xs_apiversion_bootcheck|||
2764xs_version_bootcheck|||
2765yyerror_pvn|||
2766yyerror_pv|||
7a6cd05b
TC
2767yyerror|||
2768yylex|||
2769yyparse|||
d1442cc4 2770yyunlex|||
7a6cd05b
TC
2771yywarn|||
2772);
2773
2774if (exists $opt{'list-unsupported'}) {
2775 my $f;
2776 for $f (sort { lc $a cmp lc $b } keys %API) {
2777 next unless $API{$f}{todo};
2778 print "$f ", '.'x(40-length($f)), " ", format_version($API{$f}{todo}), "\n";
2779 }
2780 exit 0;
2781}
2782
2783# Scan for possible replacement candidates
2784
d1442cc4 2785my(%replace, %need, %hints, %warnings, %depends);
7a6cd05b 2786my $replace = 0;
d1442cc4
TC
2787my($hint, $define, $function);
2788
2789sub find_api
2790{
2791 my $code = shift;
2792 $code =~ s{
2793 / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*)
2794 | "[^"\\]*(?:\\.[^"\\]*)*"
2795 | '[^'\\]*(?:\\.[^'\\]*)*' }{}egsx;
2796 grep { exists $API{$_} } $code =~ /(\w+)/mg;
2797}
7a6cd05b
TC
2798
2799while (<DATA>) {
2800 if ($hint) {
d1442cc4 2801 my $h = $hint->[0] eq 'Hint' ? \%hints : \%warnings;
7a6cd05b 2802 if (m{^\s*\*\s(.*?)\s*$}) {
d1442cc4
TC
2803 for (@{$hint->[1]}) {
2804 $h->{$_} ||= ''; # suppress warning with older perls
2805 $h->{$_} .= "$1\n";
2806 }
2807 }
2808 else { undef $hint }
2809 }
2810
2811 $hint = [$1, [split /,?\s+/, $2]]
2812 if m{^\s*$rccs\s+(Hint|Warning):\s+(\w+(?:,?\s+\w+)*)\s*$};
2813
2814 if ($define) {
2815 if ($define->[1] =~ /\\$/) {
2816 $define->[1] .= $_;
2817 }
2818 else {
2819 if (exists $API{$define->[0]} && $define->[1] !~ /^DPPP_\(/) {
2820 my @n = find_api($define->[1]);
2821 push @{$depends{$define->[0]}}, @n if @n
2822 }
2823 undef $define;
2824 }
2825 }
2826
2827 $define = [$1, $2] if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(.*)};
2828
2829 if ($function) {
2830 if (/^}/) {
2831 if (exists $API{$function->[0]}) {
2832 my @n = find_api($function->[1]);
2833 push @{$depends{$function->[0]}}, @n if @n
2834 }
2835 undef $function;
7a6cd05b
TC
2836 }
2837 else {
d1442cc4 2838 $function->[1] .= $_;
7a6cd05b
TC
2839 }
2840 }
d1442cc4
TC
2841
2842 $function = [$1, ''] if m{^DPPP_\(my_(\w+)\)};
7a6cd05b
TC
2843
2844 $replace = $1 if m{^\s*$rccs\s+Replace:\s+(\d+)\s+$rcce\s*$};
2845 $replace{$2} = $1 if $replace and m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+)};
2846 $replace{$2} = $1 if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+).*$rccs\s+Replace\s+$rcce};
2847 $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+)\s+$rcce\s*$};
2848
d1442cc4
TC
2849 if (m{^\s*$rccs\s+(\w+(\s*,\s*\w+)*)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) {
2850 my @deps = map { s/\s+//g; $_ } split /,/, $3;
2851 my $d;
2852 for $d (map { s/\s+//g; $_ } split /,/, $1) {
2853 push @{$depends{$d}}, @deps;
2854 }
7a6cd05b
TC
2855 }
2856
2857 $need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)};
2858}
2859
d1442cc4
TC
2860for (values %depends) {
2861 my %s;
2862 $_ = [sort grep !$s{$_}++, @$_];
2863}
2864
7a6cd05b
TC
2865if (exists $opt{'api-info'}) {
2866 my $f;
2867 my $count = 0;
2868 my $match = $opt{'api-info'} =~ m!^/(.*)/$! ? $1 : "^\Q$opt{'api-info'}\E\$";
2869 for $f (sort { lc $a cmp lc $b } keys %API) {
2870 next unless $f =~ /$match/;
2871 print "\n=== $f ===\n\n";
2872 my $info = 0;
2873 if ($API{$f}{base} || $API{$f}{todo}) {
2874 my $base = format_version($API{$f}{base} || $API{$f}{todo});
2875 print "Supported at least starting from perl-$base.\n";
2876 $info++;
2877 }
2878 if ($API{$f}{provided}) {
2879 my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "5.003";
2880 print "Support by $ppport provided back to perl-$todo.\n";
2881 print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f};
2882 print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f};
d1442cc4
TC
2883 print "\n$hints{$f}" if exists $hints{$f};
2884 print "\nWARNING:\n$warnings{$f}" if exists $warnings{$f};
7a6cd05b
TC
2885 $info++;
2886 }
d1442cc4 2887 print "No portability information available.\n" unless $info;
7a6cd05b
TC
2888 $count++;
2889 }
d1442cc4
TC
2890 $count or print "Found no API matching '$opt{'api-info'}'.";
2891 print "\n";
7a6cd05b
TC
2892 exit 0;
2893}
2894
2895if (exists $opt{'list-provided'}) {
2896 my $f;
2897 for $f (sort { lc $a cmp lc $b } keys %API) {
2898 next unless $API{$f}{provided};
2899 my @flags;
2900 push @flags, 'explicit' if exists $need{$f};
2901 push @flags, 'depend' if exists $depends{$f};
2902 push @flags, 'hint' if exists $hints{$f};
d1442cc4 2903 push @flags, 'warning' if exists $warnings{$f};
7a6cd05b
TC
2904 my $flags = @flags ? ' ['.join(', ', @flags).']' : '';
2905 print "$f$flags\n";
2906 }
2907 exit 0;
2908}
2909
2910my @files;
d1442cc4
TC
2911my @srcext = qw( .xs .c .h .cc .cpp -c.inc -xs.inc );
2912my $srcext = join '|', map { quotemeta $_ } @srcext;
7a6cd05b
TC
2913
2914if (@ARGV) {
2915 my %seen;
d1442cc4
TC
2916 for (@ARGV) {
2917 if (-e) {
2918 if (-f) {
2919 push @files, $_ unless $seen{$_}++;
2920 }
2921 else { warn "'$_' is not a file.\n" }
2922 }
2923 else {
2924 my @new = grep { -f } glob $_
2925 or warn "'$_' does not exist.\n";
2926 push @files, grep { !$seen{$_}++ } @new;
2927 }
2928 }
7a6cd05b
TC
2929}
2930else {
2931 eval {
2932 require File::Find;
2933 File::Find::find(sub {
d1442cc4 2934 $File::Find::name =~ /($srcext)$/i
7a6cd05b
TC
2935 and push @files, $File::Find::name;
2936 }, '.');
2937 };
2938 if ($@) {
d1442cc4 2939 @files = map { glob "*$_" } @srcext;
7a6cd05b
TC
2940 }
2941}
2942
2943if (!@ARGV || $opt{filter}) {
2944 my(@in, @out);
2945 my %xsc = map { /(.*)\.xs$/ ? ("$1.c" => 1, "$1.cc" => 1) : () } @files;
2946 for (@files) {
d1442cc4 2947 my $out = exists $xsc{$_} || /\b\Q$ppport\E$/i || !/($srcext)$/i;
7a6cd05b
TC
2948 push @{ $out ? \@out : \@in }, $_;
2949 }
2950 if (@ARGV && @out) {
2951 warning("Skipping the following files (use --nofilter to avoid this):\n| ", join "\n| ", @out);
2952 }
2953 @files = @in;
2954}
2955
d1442cc4 2956die "No input files given!\n" unless @files;
7a6cd05b
TC
2957
2958my(%files, %global, %revreplace);
2959%revreplace = reverse %replace;
2960my $filename;
2961my $patch_opened = 0;
2962
2963for $filename (@files) {
2964 unless (open IN, "<$filename") {
2965 warn "Unable to read from $filename: $!\n";
2966 next;
2967 }
2968
2969 info("Scanning $filename ...");
2970
2971 my $c = do { local $/; <IN> };
2972 close IN;
2973
2974 my %file = (orig => $c, changes => 0);
2975
d1442cc4 2976 # Temporarily remove C/XS comments and strings from the code
7a6cd05b 2977 my @ccom;
d1442cc4 2978
7a6cd05b 2979 $c =~ s{
d1442cc4
TC
2980 ( ^$HS*\#$HS*include\b[^\r\n]+\b(?:\Q$ppport\E|XSUB\.h)\b[^\r\n]*
2981 | ^$HS*\#$HS*(?:define|elif|if(?:def)?)\b[^\r\n]* )
2982 | ( ^$HS*\#[^\r\n]*
2983 | "[^"\\]*(?:\\.[^"\\]*)*"
2984 | '[^'\\]*(?:\\.[^'\\]*)*'
2985 | / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]* ) )
2986 }{ defined $2 and push @ccom, $2;
2987 defined $1 ? $1 : "$ccs$#ccom$cce" }mgsex;
7a6cd05b
TC
2988
2989 $file{ccom} = \@ccom;
2990 $file{code} = $c;
d1442cc4 2991 $file{has_inc_ppport} = $c =~ /^$HS*#$HS*include[^\r\n]+\b\Q$ppport\E\b/m;
7a6cd05b
TC
2992
2993 my $func;
2994
2995 for $func (keys %API) {
2996 my $match = $func;
2997 $match .= "|$revreplace{$func}" if exists $revreplace{$func};
2998 if ($c =~ /\b(?:Perl_)?($match)\b/) {
2999 $file{uses_replace}{$1}++ if exists $revreplace{$func} && $1 eq $revreplace{$func};
3000 $file{uses_Perl}{$func}++ if $c =~ /\bPerl_$func\b/;
3001 if (exists $API{$func}{provided}) {
d1442cc4 3002 $file{uses_provided}{$func}++;
7a6cd05b
TC
3003 if (!exists $API{$func}{base} || $API{$func}{base} > $opt{'compat-version'}) {
3004 $file{uses}{$func}++;
3005 my @deps = rec_depend($func);
3006 if (@deps) {
3007 $file{uses_deps}{$func} = \@deps;
3008 for (@deps) {
3009 $file{uses}{$_} = 0 unless exists $file{uses}{$_};
3010 }
3011 }
3012 for ($func, @deps) {
d1442cc4 3013 $file{needs}{$_} = 'static' if exists $need{$_};
7a6cd05b
TC
3014 }
3015 }
3016 }
3017 if (exists $API{$func}{todo} && $API{$func}{todo} > $opt{'compat-version'}) {
3018 if ($c =~ /\b$func\b/) {
3019 $file{uses_todo}{$func}++;
3020 }
3021 }
3022 }
3023 }
3024
3025 while ($c =~ /^$HS*#$HS*define$HS+(NEED_(\w+?)(_GLOBAL)?)\b/mg) {
3026 if (exists $need{$2}) {
3027 $file{defined $3 ? 'needed_global' : 'needed_static'}{$2}++;
3028 }
d1442cc4 3029 else { warning("Possibly wrong #define $1 in $filename") }
7a6cd05b
TC
3030 }
3031
3032 for (qw(uses needs uses_todo needed_global needed_static)) {
3033 for $func (keys %{$file{$_}}) {
3034 push @{$global{$_}{$func}}, $filename;
3035 }
3036 }
3037
3038 $files{$filename} = \%file;
3039}
3040
3041# Globally resolve NEED_'s
3042my $need;
3043for $need (keys %{$global{needs}}) {
3044 if (@{$global{needs}{$need}} > 1) {
3045 my @targets = @{$global{needs}{$need}};
3046 my @t = grep $files{$_}{needed_global}{$need}, @targets;
3047 @targets = @t if @t;
3048 @t = grep /\.xs$/i, @targets;
3049 @targets = @t if @t;
3050 my $target = shift @targets;
3051 $files{$target}{needs}{$need} = 'global';
3052 for (@{$global{needs}{$need}}) {
3053 $files{$_}{needs}{$need} = 'extern' if $_ ne $target;
3054 }
3055 }
3056}
3057
3058for $filename (@files) {
3059 exists $files{$filename} or next;
3060
3061 info("=== Analyzing $filename ===");
3062
3063 my %file = %{$files{$filename}};
3064 my $func;
3065 my $c = $file{code};
d1442cc4 3066 my $warnings = 0;
7a6cd05b
TC
3067
3068 for $func (sort keys %{$file{uses_Perl}}) {
3069 if ($API{$func}{varargs}) {
d1442cc4
TC
3070 unless ($API{$func}{nothxarg}) {
3071 my $changes = ($c =~ s{\b(Perl_$func\s*\(\s*)(?!aTHX_?)(\)|[^\s)]*\))}
3072 { $1 . ($2 eq ')' ? 'aTHX' : 'aTHX_ ') . $2 }ge);
3073 if ($changes) {
3074 warning("Doesn't pass interpreter argument aTHX to Perl_$func");
3075 $file{changes} += $changes;
3076 }
7a6cd05b
TC
3077 }
3078 }
3079 else {
3080 warning("Uses Perl_$func instead of $func");
3081 $file{changes} += ($c =~ s{\bPerl_$func(\s*)\((\s*aTHX_?)?\s*}
3082 {$func$1(}g);
3083 }
3084 }
3085
3086 for $func (sort keys %{$file{uses_replace}}) {
3087 warning("Uses $func instead of $replace{$func}");
3088 $file{changes} += ($c =~ s/\b$func\b/$replace{$func}/g);
3089 }
3090
d1442cc4
TC
3091 for $func (sort keys %{$file{uses_provided}}) {
3092 if ($file{uses}{$func}) {
3093 if (exists $file{uses_deps}{$func}) {
3094 diag("Uses $func, which depends on ", join(', ', @{$file{uses_deps}{$func}}));
3095 }
3096 else {
3097 diag("Uses $func");
3098 }
7a6cd05b 3099 }
d1442cc4 3100 $warnings += hint($func);
7a6cd05b
TC
3101 }
3102
d1442cc4
TC
3103 unless ($opt{quiet}) {
3104 for $func (sort keys %{$file{uses_todo}}) {
3105 print "*** WARNING: Uses $func, which may not be portable below perl ",
3106 format_version($API{$func}{todo}), ", even with '$ppport'\n";
3107 $warnings++;
3108 }
7a6cd05b
TC
3109 }
3110
3111 for $func (sort keys %{$file{needed_static}}) {
3112 my $message = '';
3113 if (not exists $file{uses}{$func}) {
3114 $message = "No need to define NEED_$func if $func is never used";
3115 }
3116 elsif (exists $file{needs}{$func} && $file{needs}{$func} ne 'static') {
3117 $message = "No need to define NEED_$func when already needed globally";
3118 }
3119 if ($message) {
3120 diag($message);
3121 $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_$func\b.*$LF//mg);
3122 }
3123 }
3124
3125 for $func (sort keys %{$file{needed_global}}) {
3126 my $message = '';
3127 if (not exists $global{uses}{$func}) {
3128 $message = "No need to define NEED_${func}_GLOBAL if $func is never used";
3129 }
3130 elsif (exists $file{needs}{$func}) {
3131 if ($file{needs}{$func} eq 'extern') {
3132 $message = "No need to define NEED_${func}_GLOBAL when already needed globally";
3133 }
3134 elsif ($file{needs}{$func} eq 'static') {
3135 $message = "No need to define NEED_${func}_GLOBAL when only used in this file";
3136 }
3137 }
3138 if ($message) {
3139 diag($message);
3140 $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_${func}_GLOBAL\b.*$LF//mg);
3141 }
3142 }
3143
3144 $file{needs_inc_ppport} = keys %{$file{uses}};
3145
3146 if ($file{needs_inc_ppport}) {
3147 my $pp = '';
3148
3149 for $func (sort keys %{$file{needs}}) {
3150 my $type = $file{needs}{$func};
3151 next if $type eq 'extern';
3152 my $suffix = $type eq 'global' ? '_GLOBAL' : '';
3153 unless (exists $file{"needed_$type"}{$func}) {
3154 if ($type eq 'global') {
3155 diag("Files [@{$global{needs}{$func}}] need $func, adding global request");
3156 }
3157 else {
3158 diag("File needs $func, adding static request");
3159 }
3160 $pp .= "#define NEED_$func$suffix\n";
3161 }
3162 }
3163
3164 if ($pp && ($c =~ s/^(?=$HS*#$HS*define$HS+NEED_\w+)/$pp/m)) {
3165 $pp = '';
3166 $file{changes}++;
3167 }
3168
3169 unless ($file{has_inc_ppport}) {
3170 diag("Needs to include '$ppport'");
3171 $pp .= qq(#include "$ppport"\n)
3172 }
3173
3174 if ($pp) {
3175 $file{changes} += ($c =~ s/^($HS*#$HS*define$HS+NEED_\w+.*?)^/$1$pp/ms)
3176 || ($c =~ s/^(?=$HS*#$HS*include.*\Q$ppport\E)/$pp/m)
3177 || ($c =~ s/^($HS*#$HS*include.*XSUB.*\s*?)^/$1$pp/m)
3178 || ($c =~ s/^/$pp/);
3179 }
3180 }
3181 else {
3182 if ($file{has_inc_ppport}) {
3183 diag("No need to include '$ppport'");
3184 $file{changes} += ($c =~ s/^$HS*?#$HS*include.*\Q$ppport\E.*?$LF//m);
3185 }
3186 }
3187
3188 # put back in our C comments
3189 my $ix;
3190 my $cppc = 0;
3191 my @ccom = @{$file{ccom}};
3192 for $ix (0 .. $#ccom) {
3193 if (!$opt{cplusplus} && $ccom[$ix] =~ s!^//!!) {
3194 $cppc++;
3195 $file{changes} += $c =~ s/$rccs$ix$rcce/$ccs$ccom[$ix] $cce/;
3196 }
3197 else {
3198 $c =~ s/$rccs$ix$rcce/$ccom[$ix]/;
3199 }
3200 }
3201
3202 if ($cppc) {
3203 my $s = $cppc != 1 ? 's' : '';
3204 warning("Uses $cppc C++ style comment$s, which is not portable");
3205 }
3206
d1442cc4
TC
3207 my $s = $warnings != 1 ? 's' : '';
3208 my $warn = $warnings ? " ($warnings warning$s)" : '';
3209 info("Analysis completed$warn");
3210
7a6cd05b
TC
3211 if ($file{changes}) {
3212 if (exists $opt{copy}) {
3213 my $newfile = "$filename$opt{copy}";
3214 if (-e $newfile) {
3215 error("'$newfile' already exists, refusing to write copy of '$filename'");
3216 }
3217 else {
3218 local *F;
3219 if (open F, ">$newfile") {
3220 info("Writing copy of '$filename' with changes to '$newfile'");
3221 print F $c;
3222 close F;
3223 }
3224 else {
3225 error("Cannot open '$newfile' for writing: $!");
3226 }
3227 }
3228 }
3229 elsif (exists $opt{patch} || $opt{changes}) {
3230 if (exists $opt{patch}) {
3231 unless ($patch_opened) {
3232 if (open PATCH, ">$opt{patch}") {
3233 $patch_opened = 1;
3234 }
3235 else {
3236 error("Cannot open '$opt{patch}' for writing: $!");
3237 delete $opt{patch};
3238 $opt{changes} = 1;
3239 goto fallback;
3240 }
3241 }
3242 mydiff(\*PATCH, $filename, $c);
3243 }
3244 else {
3245fallback:
3246 info("Suggested changes:");
3247 mydiff(\*STDOUT, $filename, $c);
3248 }
3249 }
3250 else {
3251 my $s = $file{changes} == 1 ? '' : 's';
3252 info("$file{changes} potentially required change$s detected");
3253 }
3254 }
3255 else {
3256 info("Looks good");
3257 }
3258}
3259
3260close PATCH if $patch_opened;
3261
3262exit 0;
3263
3264
d1442cc4
TC
3265sub try_use { eval "use @_;"; return $@ eq '' }
3266
7a6cd05b
TC
3267sub mydiff
3268{
3269 local *F = shift;
3270 my($file, $str) = @_;
3271 my $diff;
3272
3273 if (exists $opt{diff}) {
3274 $diff = run_diff($opt{diff}, $file, $str);
3275 }
3276
d1442cc4 3277 if (!defined $diff and try_use('Text::Diff')) {
7a6cd05b
TC
3278 $diff = Text::Diff::diff($file, \$str, { STYLE => 'Unified' });
3279 $diff = <<HEADER . $diff;
3280--- $file
3281+++ $file.patched
3282HEADER
3283 }
3284
3285 if (!defined $diff) {
3286 $diff = run_diff('diff -u', $file, $str);
3287 }
3288
3289 if (!defined $diff) {
3290 $diff = run_diff('diff', $file, $str);
3291 }
3292
3293 if (!defined $diff) {
3294 error("Cannot generate a diff. Please install Text::Diff or use --copy.");
3295 return;
3296 }
3297
3298 print F $diff;
7a6cd05b
TC
3299}
3300
3301sub run_diff
3302{
3303 my($prog, $file, $str) = @_;
3304 my $tmp = 'dppptemp';
3305 my $suf = 'aaa';
3306 my $diff = '';
3307 local *F;
3308
3309 while (-e "$tmp.$suf") { $suf++ }
3310 $tmp = "$tmp.$suf";
3311
3312 if (open F, ">$tmp") {
3313 print F $str;
3314 close F;
3315
3316 if (open F, "$prog $file $tmp |") {
3317 while (<F>) {
3318 s/\Q$tmp\E/$file.patched/;
3319 $diff .= $_;
3320 }
3321 close F;
3322 unlink $tmp;
3323 return $diff;
3324 }
3325
3326 unlink $tmp;
3327 }
3328 else {
3329 error("Cannot open '$tmp' for writing: $!");
3330 }
3331
3332 return undef;
3333}
3334
7a6cd05b
TC
3335sub rec_depend
3336{
d1442cc4 3337 my($func, $seen) = @_;
7a6cd05b 3338 return () unless exists $depends{$func};
d1442cc4
TC
3339 $seen = {%{$seen||{}}};
3340 return () if $seen->{$func}++;
3341 my %s;
3342 grep !$s{$_}++, map { ($_, rec_depend($_, $seen)) } @{$depends{$func}};
7a6cd05b
TC
3343}
3344
3345sub parse_version
3346{
3347 my $ver = shift;
3348
3349 if ($ver =~ /^(\d+)\.(\d+)\.(\d+)$/) {
3350 return ($1, $2, $3);
3351 }
3352 elsif ($ver !~ /^\d+\.[\d_]+$/) {
3353 die "cannot parse version '$ver'\n";
3354 }
3355
3356 $ver =~ s/_//g;
3357 $ver =~ s/$/000000/;
3358
3359 my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;
3360
3361 $v = int $v;
3362 $s = int $s;
3363
3364 if ($r < 5 || ($r == 5 && $v < 6)) {
3365 if ($s % 10) {
3366 die "cannot parse version '$ver'\n";
3367 }
3368 }
3369
3370 return ($r, $v, $s);
3371}
3372
3373sub format_version
3374{
3375 my $ver = shift;
3376
3377 $ver =~ s/$/000000/;
3378 my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;
3379
3380 $v = int $v;
3381 $s = int $s;
3382
3383 if ($r < 5 || ($r == 5 && $v < 6)) {
3384 if ($s % 10) {
3385 die "invalid version '$ver'\n";
3386 }
3387 $s /= 10;
3388
3389 $ver = sprintf "%d.%03d", $r, $v;
3390 $s > 0 and $ver .= sprintf "_%02d", $s;
3391
3392 return $ver;
3393 }
3394
3395 return sprintf "%d.%d.%d", $r, $v, $s;
3396}
3397
3398sub info
3399{
3400 $opt{quiet} and return;
3401 print @_, "\n";
3402}
3403
3404sub diag
3405{
3406 $opt{quiet} and return;
3407 $opt{diag} and print @_, "\n";
3408}
3409
3410sub warning
3411{
3412 $opt{quiet} and return;
3413 print "*** ", @_, "\n";
3414}
3415
3416sub error
3417{
3418 print "*** ERROR: ", @_, "\n";
3419}
3420
3421my %given_hints;
d1442cc4 3422my %given_warnings;
7a6cd05b
TC
3423sub hint
3424{
3425 $opt{quiet} and return;
7a6cd05b 3426 my $func = shift;
d1442cc4
TC
3427 my $rv = 0;
3428 if (exists $warnings{$func} && !$given_warnings{$func}++) {
3429 my $warn = $warnings{$func};
3430 $warn =~ s!^!*** !mg;
3431 print "*** WARNING: $func\n", $warn;
3432 $rv++;
3433 }
3434 if ($opt{hints} && exists $hints{$func} && !$given_hints{$func}++) {
3435 my $hint = $hints{$func};
3436 $hint =~ s/^/ /mg;
3437 print " --- hint for $func ---\n", $hint;
3438 }
3439 $rv;
7a6cd05b
TC
3440}
3441
3442sub usage
3443{
3444 my($usage) = do { local(@ARGV,$/)=($0); <> } =~ /^=head\d$HS+SYNOPSIS\s*^(.*?)\s*^=/ms;
3445 my %M = ( 'I' => '*' );
3446 $usage =~ s/^\s*perl\s+\S+/$^X $0/;
3447 $usage =~ s/([A-Z])<([^>]+)>/$M{$1}$2$M{$1}/g;
3448
3449 print <<ENDUSAGE;
3450
3451Usage: $usage
3452
3453See perldoc $0 for details.
3454
3455ENDUSAGE
3456
3457 exit 2;
3458}
3459
d1442cc4
TC
3460sub strip
3461{
3462 my $self = do { local(@ARGV,$/)=($0); <> };
3463 my($copy) = $self =~ /^=head\d\s+COPYRIGHT\s*^(.*?)^=\w+/ms;
3464 $copy =~ s/^(?=\S+)/ /gms;
3465 $self =~ s/^$HS+Do NOT edit.*?(?=^-)/$copy/ms;
3466 $self =~ s/^SKIP.*(?=^__DATA__)/SKIP
3467if (\@ARGV && \$ARGV[0] eq '--unstrip') {
3468 eval { require Devel::PPPort };
3469 \$@ and die "Cannot require Devel::PPPort, please install.\\n";
3470 if (eval \$Devel::PPPort::VERSION < $VERSION) {
3471 die "$0 was originally generated with Devel::PPPort $VERSION.\\n"
3472 . "Your Devel::PPPort is only version \$Devel::PPPort::VERSION.\\n"
3473 . "Please install a newer version, or --unstrip will not work.\\n";
3474 }
3475 Devel::PPPort::WriteFile(\$0);
3476 exit 0;
3477}
3478print <<END;
3479
3480Sorry, but this is a stripped version of \$0.
3481
3482To be able to use its original script and doc functionality,
3483please try to regenerate this file using:
3484
3485 \$^X \$0 --unstrip
3486
3487END
3488/ms;
3489 my($pl, $c) = $self =~ /(.*^__DATA__)(.*)/ms;
3490 $c =~ s{
3491 / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*)
3492 | ( "[^"\\]*(?:\\.[^"\\]*)*"
3493 | '[^'\\]*(?:\\.[^'\\]*)*' )
3494 | ($HS+) }{ defined $2 ? ' ' : ($1 || '') }gsex;
3495 $c =~ s!\s+$!!mg;
3496 $c =~ s!^$LF!!mg;
3497 $c =~ s!^\s*#\s*!#!mg;
3498 $c =~ s!^\s+!!mg;
3499
3500 open OUT, ">$0" or die "cannot strip $0: $!\n";
3501 print OUT "$pl$c\n";
3502
3503 exit 0;
3504}
3505
7a6cd05b
TC
3506__DATA__
3507*/
3508
3509#ifndef _P_P_PORTABILITY_H_
3510#define _P_P_PORTABILITY_H_
3511
3512#ifndef DPPP_NAMESPACE
3513# define DPPP_NAMESPACE DPPP_
3514#endif
3515
3516#define DPPP_CAT2(x,y) CAT2(x,y)
3517#define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name)
3518
3519#ifndef PERL_REVISION
3520# if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
3521# define PERL_PATCHLEVEL_H_IMPLICIT
3522# include <patchlevel.h>
3523# endif
3524# if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
3525# include <could_not_find_Perl_patchlevel.h>
3526# endif
3527# ifndef PERL_REVISION
3528# define PERL_REVISION (5)
3529 /* Replace: 1 */
3530# define PERL_VERSION PATCHLEVEL
3531# define PERL_SUBVERSION SUBVERSION
3532 /* Replace PERL_PATCHLEVEL with PERL_VERSION */
3533 /* Replace: 0 */
3534# endif
3535#endif
3536
d1442cc4
TC
3537#define _dpppDEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10))
3538#define PERL_BCDVERSION ((_dpppDEC2BCD(PERL_REVISION)<<24)|(_dpppDEC2BCD(PERL_VERSION)<<12)|_dpppDEC2BCD(PERL_SUBVERSION))
7a6cd05b
TC
3539
3540/* It is very unlikely that anyone will try to use this with Perl 6
3541 (or greater), but who knows.
3542 */
3543#if PERL_REVISION != 5
3544# error ppport.h only works with Perl version 5
3545#endif /* PERL_REVISION != 5 */
d1442cc4
TC
3546#ifndef dTHR
3547# define dTHR dNOOP
3548#endif
3549#ifndef dTHX
3550# define dTHX dNOOP
3551#endif
3552
3553#ifndef dTHXa
3554# define dTHXa(x) dNOOP
3555#endif
3556#ifndef pTHX
3557# define pTHX void
3558#endif
3559
3560#ifndef pTHX_
3561# define pTHX_
3562#endif
3563
3564#ifndef aTHX
3565# define aTHX
3566#endif
3567
3568#ifndef aTHX_
3569# define aTHX_
3570#endif
3571
3572#if (PERL_BCDVERSION < 0x5006000)
3573# ifdef USE_THREADS
3574# define aTHXR thr
3575# define aTHXR_ thr,
3576# else
3577# define aTHXR
3578# define aTHXR_
3579# endif
3580# define dTHXR dTHR
3581#else
3582# define aTHXR aTHX
3583# define aTHXR_ aTHX_
3584# define dTHXR dTHX
3585#endif
3586#ifndef dTHXoa
3587# define dTHXoa(x) dTHXa(x)
3588#endif
7a6cd05b
TC
3589
3590#ifdef I_LIMITS
3591# include <limits.h>
3592#endif
3593
3594#ifndef PERL_UCHAR_MIN
3595# define PERL_UCHAR_MIN ((unsigned char)0)
3596#endif
3597
3598#ifndef PERL_UCHAR_MAX
3599# ifdef UCHAR_MAX
3600# define PERL_UCHAR_MAX ((unsigned char)UCHAR_MAX)
3601# else
3602# ifdef MAXUCHAR
3603# define PERL_UCHAR_MAX ((unsigned char)MAXUCHAR)
3604# else
3605# define PERL_UCHAR_MAX ((unsigned char)~(unsigned)0)
3606# endif
3607# endif
3608#endif
3609
3610#ifndef PERL_USHORT_MIN
3611# define PERL_USHORT_MIN ((unsigned short)0)
3612#endif
3613
3614#ifndef PERL_USHORT_MAX
3615# ifdef USHORT_MAX
3616# define PERL_USHORT_MAX ((unsigned short)USHORT_MAX)
3617# else
3618# ifdef MAXUSHORT
3619# define PERL_USHORT_MAX ((unsigned short)MAXUSHORT)
3620# else
3621# ifdef USHRT_MAX
3622# define PERL_USHORT_MAX ((unsigned short)USHRT_MAX)
3623# else
3624# define PERL_USHORT_MAX ((unsigned short)~(unsigned)0)
3625# endif
3626# endif
3627# endif
3628#endif
3629
3630#ifndef PERL_SHORT_MAX
3631# ifdef SHORT_MAX
3632# define PERL_SHORT_MAX ((short)SHORT_MAX)
3633# else
3634# ifdef MAXSHORT /* Often used in <values.h> */
3635# define PERL_SHORT_MAX ((short)MAXSHORT)
3636# else
3637# ifdef SHRT_MAX
3638# define PERL_SHORT_MAX ((short)SHRT_MAX)
3639# else
3640# define PERL_SHORT_MAX ((short) (PERL_USHORT_MAX >> 1))
3641# endif
3642# endif
3643# endif
3644#endif
3645
3646#ifndef PERL_SHORT_MIN
3647# ifdef SHORT_MIN
3648# define PERL_SHORT_MIN ((short)SHORT_MIN)
3649# else
3650# ifdef MINSHORT
3651# define PERL_SHORT_MIN ((short)MINSHORT)
3652# else
3653# ifdef SHRT_MIN
3654# define PERL_SHORT_MIN ((short)SHRT_MIN)
3655# else
3656# define PERL_SHORT_MIN (-PERL_SHORT_MAX - ((3 & -1) == 3))
3657# endif
3658# endif
3659# endif
3660#endif
3661
3662#ifndef PERL_UINT_MAX
3663# ifdef UINT_MAX
3664# define PERL_UINT_MAX ((unsigned int)UINT_MAX)
3665# else
3666# ifdef MAXUINT
3667# define PERL_UINT_MAX ((unsigned int)MAXUINT)
3668# else
3669# define PERL_UINT_MAX (~(unsigned int)0)
3670# endif
3671# endif
3672#endif
3673
3674#ifndef PERL_UINT_MIN
3675# define PERL_UINT_MIN ((unsigned int)0)
3676#endif
3677
3678#ifndef PERL_INT_MAX
3679# ifdef INT_MAX
3680# define PERL_INT_MAX ((int)INT_MAX)
3681# else
3682# ifdef MAXINT /* Often used in <values.h> */
3683# define PERL_INT_MAX ((int)MAXINT)
3684# else
3685# define PERL_INT_MAX ((int)(PERL_UINT_MAX >> 1))
3686# endif
3687# endif
3688#endif
3689
3690#ifndef PERL_INT_MIN
3691# ifdef INT_MIN
3692# define PERL_INT_MIN ((int)INT_MIN)
3693# else
3694# ifdef MININT
3695# define PERL_INT_MIN ((int)MININT)
3696# else
3697# define PERL_INT_MIN (-PERL_INT_MAX - ((3 & -1) == 3))
3698# endif
3699# endif
3700#endif
3701
3702#ifndef PERL_ULONG_MAX
3703# ifdef ULONG_MAX
3704# define PERL_ULONG_MAX ((unsigned long)ULONG_MAX)
3705# else
3706# ifdef MAXULONG
3707# define PERL_ULONG_MAX ((unsigned long)MAXULONG)
3708# else
3709# define PERL_ULONG_MAX (~(unsigned long)0)
3710# endif
3711# endif
3712#endif
3713
3714#ifndef PERL_ULONG_MIN
3715# define PERL_ULONG_MIN ((unsigned long)0L)
3716#endif
3717
3718#ifndef PERL_LONG_MAX
3719# ifdef LONG_MAX
3720# define PERL_LONG_MAX ((long)LONG_MAX)
3721# else
3722# ifdef MAXLONG
3723# define PERL_LONG_MAX ((long)MAXLONG)
3724# else
3725# define PERL_LONG_MAX ((long) (PERL_ULONG_MAX >> 1))
3726# endif
3727# endif
3728#endif
3729
3730#ifndef PERL_LONG_MIN
3731# ifdef LONG_MIN
3732# define PERL_LONG_MIN ((long)LONG_MIN)
3733# else
3734# ifdef MINLONG
3735# define PERL_LONG_MIN ((long)MINLONG)
3736# else
3737# define PERL_LONG_MIN (-PERL_LONG_MAX - ((3 & -1) == 3))
3738# endif
3739# endif
3740#endif
3741
3742#if defined(HAS_QUAD) && (defined(convex) || defined(uts))
3743# ifndef PERL_UQUAD_MAX
3744# ifdef ULONGLONG_MAX
3745# define PERL_UQUAD_MAX ((unsigned long long)ULONGLONG_MAX)
3746# else
3747# ifdef MAXULONGLONG
3748# define PERL_UQUAD_MAX ((unsigned long long)MAXULONGLONG)
3749# else
3750# define PERL_UQUAD_MAX (~(unsigned long long)0)
3751# endif
3752# endif
3753# endif
3754
3755# ifndef PERL_UQUAD_MIN
3756# define PERL_UQUAD_MIN ((unsigned long long)0L)
3757# endif
3758
3759# ifndef PERL_QUAD_MAX
3760# ifdef LONGLONG_MAX
3761# define PERL_QUAD_MAX ((long long)LONGLONG_MAX)
3762# else
3763# ifdef MAXLONGLONG
3764# define PERL_QUAD_MAX ((long long)MAXLONGLONG)
3765# else
3766# define PERL_QUAD_MAX ((long long) (PERL_UQUAD_MAX >> 1))
3767# endif
3768# endif
3769# endif
3770
3771# ifndef PERL_QUAD_MIN
3772# ifdef LONGLONG_MIN
3773# define PERL_QUAD_MIN ((long long)LONGLONG_MIN)
3774# else
3775# ifdef MINLONGLONG
3776# define PERL_QUAD_MIN ((long long)MINLONGLONG)
3777# else
3778# define PERL_QUAD_MIN (-PERL_QUAD_MAX - ((3 & -1) == 3))
3779# endif
3780# endif
3781# endif
3782#endif
3783
3784/* This is based on code from 5.003 perl.h */
3785#ifdef HAS_QUAD
3786# ifdef cray
3787#ifndef IVTYPE
3788# define IVTYPE int
3789#endif
3790
3791#ifndef IV_MIN
3792# define IV_MIN PERL_INT_MIN
3793#endif
3794
3795#ifndef IV_MAX
3796# define IV_MAX PERL_INT_MAX
3797#endif
3798
3799#ifndef UV_MIN
3800# define UV_MIN PERL_UINT_MIN
3801#endif
3802
3803#ifndef UV_MAX
3804# define UV_MAX PERL_UINT_MAX
3805#endif
3806
3807# ifdef INTSIZE
3808#ifndef IVSIZE
3809# define IVSIZE INTSIZE
3810#endif
3811
3812# endif
3813# else
3814# if defined(convex) || defined(uts)
3815#ifndef IVTYPE
3816# define IVTYPE long long
3817#endif
3818
3819#ifndef IV_MIN
3820# define IV_MIN PERL_QUAD_MIN
3821#endif
3822
3823#ifndef IV_MAX
3824# define IV_MAX PERL_QUAD_MAX
3825#endif
3826
3827#ifndef UV_MIN
3828# define UV_MIN PERL_UQUAD_MIN
3829#endif
3830
3831#ifndef UV_MAX
3832# define UV_MAX PERL_UQUAD_MAX
3833#endif
3834
3835# ifdef LONGLONGSIZE
3836#ifndef IVSIZE
3837# define IVSIZE LONGLONGSIZE
3838#endif
3839
3840# endif
3841# else
3842#ifndef IVTYPE
3843# define IVTYPE long
3844#endif
3845
3846#ifndef IV_MIN
3847# define IV_MIN PERL_LONG_MIN
3848#endif
3849
3850#ifndef IV_MAX
3851# define IV_MAX PERL_LONG_MAX
3852#endif
3853
3854#ifndef UV_MIN
3855# define UV_MIN PERL_ULONG_MIN
3856#endif
3857
3858#ifndef UV_MAX
3859# define UV_MAX PERL_ULONG_MAX
3860#endif
3861
3862# ifdef LONGSIZE
3863#ifndef IVSIZE
3864# define IVSIZE LONGSIZE
3865#endif
3866
3867# endif
3868# endif
3869# endif
3870#ifndef IVSIZE
3871# define IVSIZE 8
3872#endif
3873
d1442cc4
TC
3874#ifndef LONGSIZE
3875# define LONGSIZE 8
3876#endif
3877
7a6cd05b
TC
3878#ifndef PERL_QUAD_MIN
3879# define PERL_QUAD_MIN IV_MIN
3880#endif
3881
3882#ifndef PERL_QUAD_MAX
3883# define PERL_QUAD_MAX IV_MAX
3884#endif
3885
3886#ifndef PERL_UQUAD_MIN
3887# define PERL_UQUAD_MIN UV_MIN
3888#endif
3889
3890#ifndef PERL_UQUAD_MAX
3891# define PERL_UQUAD_MAX UV_MAX
3892#endif
3893
3894#else
3895#ifndef IVTYPE
3896# define IVTYPE long
3897#endif
3898
d1442cc4
TC
3899#ifndef LONGSIZE
3900# define LONGSIZE 4
3901#endif
3902
7a6cd05b
TC
3903#ifndef IV_MIN
3904# define IV_MIN PERL_LONG_MIN
3905#endif
3906
3907#ifndef IV_MAX
3908# define IV_MAX PERL_LONG_MAX
3909#endif
3910
3911#ifndef UV_MIN
3912# define UV_MIN PERL_ULONG_MIN
3913#endif
3914
3915#ifndef UV_MAX
3916# define UV_MAX PERL_ULONG_MAX
3917#endif
3918
3919#endif
3920
3921#ifndef IVSIZE
3922# ifdef LONGSIZE
3923# define IVSIZE LONGSIZE
3924# else
3925# define IVSIZE 4 /* A bold guess, but the best we can make. */
3926# endif
3927#endif
3928#ifndef UVTYPE
3929# define UVTYPE unsigned IVTYPE
3930#endif
3931
3932#ifndef UVSIZE
3933# define UVSIZE IVSIZE
3934#endif
7a6cd05b 3935#ifndef sv_setuv
d1442cc4
TC
3936# define sv_setuv(sv, uv) \
3937 STMT_START { \
3938 UV TeMpUv = uv; \
3939 if (TeMpUv <= IV_MAX) \
3940 sv_setiv(sv, TeMpUv); \
3941 else \
3942 sv_setnv(sv, (double)TeMpUv); \
3943 } STMT_END
7a6cd05b 3944#endif
7a6cd05b 3945#ifndef newSVuv
d1442cc4 3946# define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv))
7a6cd05b
TC
3947#endif
3948#ifndef sv_2uv
3949# define sv_2uv(sv) ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv)))
3950#endif
3951
3952#ifndef SvUVX
3953# define SvUVX(sv) ((UV)SvIVX(sv))
3954#endif
3955
3956#ifndef SvUVXx
3957# define SvUVXx(sv) SvUVX(sv)
3958#endif
3959
3960#ifndef SvUV
3961# define SvUV(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv))
3962#endif
3963
3964#ifndef SvUVx
3965# define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv))
3966#endif
3967
3968/* Hint: sv_uv
3969 * Always use the SvUVx() macro instead of sv_uv().
3970 */
3971#ifndef sv_uv
3972# define sv_uv(sv) SvUVx(sv)
3973#endif
d1442cc4
TC
3974
3975#if !defined(SvUOK) && defined(SvIOK_UV)
3976# define SvUOK(sv) SvIOK_UV(sv)
3977#endif
7a6cd05b
TC
3978#ifndef XST_mUV
3979# define XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) )
3980#endif
3981
3982#ifndef XSRETURN_UV
3983# define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END
3984#endif
3985#ifndef PUSHu
3986# define PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END
3987#endif
3988
3989#ifndef XPUSHu
3990# define XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END
3991#endif
3992
d1442cc4
TC
3993#ifdef HAS_MEMCMP
3994#ifndef memNE
3995# define memNE(s1,s2,l) (memcmp(s1,s2,l))
3996#endif
3997
3998#ifndef memEQ
3999# define memEQ(s1,s2,l) (!memcmp(s1,s2,l))
4000#endif
4001
4002#else
4003#ifndef memNE
4004# define memNE(s1,s2,l) (bcmp(s1,s2,l))
4005#endif
4006
4007#ifndef memEQ
4008# define memEQ(s1,s2,l) (!bcmp(s1,s2,l))
4009#endif
4010
4011#endif
4012#ifndef memEQs
4013# define memEQs(s1, l, s2) \
4014 (sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1)))
4015#endif
4016
4017#ifndef memNEs
4018# define memNEs(s1, l, s2) !memEQs(s1, l, s2)
4019#endif
4020#ifndef MoveD
4021# define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t))
4022#endif
4023
4024#ifndef CopyD
4025# define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t))
4026#endif
4027
4028#ifdef HAS_MEMSET
4029#ifndef ZeroD
4030# define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t))
4031#endif
4032
4033#else
4034#ifndef ZeroD
4035# define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d)
4036#endif
4037
4038#endif
4039#ifndef PoisonWith
4040# define PoisonWith(d,n,t,b) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t))
4041#endif
4042
4043#ifndef PoisonNew
4044# define PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB)
4045#endif
4046
4047#ifndef PoisonFree
4048# define PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF)
4049#endif
4050
4051#ifndef Poison
4052# define Poison(d,n,t) PoisonFree(d,n,t)
4053#endif
4054#ifndef Newx
4055# define Newx(v,n,t) New(0,v,n,t)
4056#endif
4057
4058#ifndef Newxc
4059# define Newxc(v,n,t,c) Newc(0,v,n,t,c)
4060#endif
4061
4062#ifndef Newxz
4063# define Newxz(v,n,t) Newz(0,v,n,t)
7a6cd05b
TC
4064#endif
4065
4066#ifndef PERL_UNUSED_DECL
4067# ifdef HASATTRIBUTE
4068# if (defined(__GNUC__) && defined(__cplusplus)) || defined(__INTEL_COMPILER)
4069# define PERL_UNUSED_DECL
4070# else
4071# define PERL_UNUSED_DECL __attribute__((unused))
4072# endif
4073# else
4074# define PERL_UNUSED_DECL
4075# endif
4076#endif
d1442cc4
TC
4077
4078#ifndef PERL_UNUSED_ARG
4079# if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
4080# include <note.h>
4081# define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x))
4082# else
4083# define PERL_UNUSED_ARG(x) ((void)x)
4084# endif
4085#endif
4086
4087#ifndef PERL_UNUSED_VAR
4088# define PERL_UNUSED_VAR(x) ((void)x)
4089#endif
4090
4091#ifndef PERL_UNUSED_CONTEXT
4092# ifdef USE_ITHREADS
4093# define PERL_UNUSED_CONTEXT PERL_UNUSED_ARG(my_perl)
4094# else
4095# define PERL_UNUSED_CONTEXT
4096# endif
4097#endif
7a6cd05b 4098#ifndef NOOP
d1442cc4 4099# define NOOP /*EMPTY*/(void)0
7a6cd05b
TC
4100#endif
4101
4102#ifndef dNOOP
d1442cc4 4103# define dNOOP extern int /*@unused@*/ Perl___notused PERL_UNUSED_DECL
7a6cd05b
TC
4104#endif
4105
4106#ifndef NVTYPE
4107# if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
4108# define NVTYPE long double
4109# else
4110# define NVTYPE double
4111# endif
4112typedef NVTYPE NV;
4113#endif
4114
4115#ifndef INT2PTR
7a6cd05b
TC
4116# if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
4117# define PTRV UV
4118# define INT2PTR(any,d) (any)(d)
4119# else
4120# if PTRSIZE == LONGSIZE
4121# define PTRV unsigned long
4122# else
4123# define PTRV unsigned
4124# endif
4125# define INT2PTR(any,d) (any)(PTRV)(d)
4126# endif
d1442cc4 4127#endif
7a6cd05b 4128
d1442cc4 4129#ifndef PTR2ul
7a6cd05b
TC
4130# if PTRSIZE == LONGSIZE
4131# define PTR2ul(p) (unsigned long)(p)
4132# else
4133# define PTR2ul(p) INT2PTR(unsigned long,p)
4134# endif
d1442cc4
TC
4135#endif
4136#ifndef PTR2nat
4137# define PTR2nat(p) (PTRV)(p)
4138#endif
4139
4140#ifndef NUM2PTR
4141# define NUM2PTR(any,d) (any)PTR2nat(d)
4142#endif
4143
4144#ifndef PTR2IV
4145# define PTR2IV(p) INT2PTR(IV,p)
4146#endif
4147
4148#ifndef PTR2UV
4149# define PTR2UV(p) INT2PTR(UV,p)
4150#endif
7a6cd05b 4151
d1442cc4
TC
4152#ifndef PTR2NV
4153# define PTR2NV(p) NUM2PTR(NV,p)
4154#endif
7a6cd05b
TC
4155
4156#undef START_EXTERN_C
4157#undef END_EXTERN_C
4158#undef EXTERN_C
4159#ifdef __cplusplus
4160# define START_EXTERN_C extern "C" {
4161# define END_EXTERN_C }
4162# define EXTERN_C extern "C"
4163#else
4164# define START_EXTERN_C
4165# define END_EXTERN_C
4166# define EXTERN_C extern
4167#endif
4168
d1442cc4
TC
4169#if defined(PERL_GCC_PEDANTIC)
4170# ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN
7a6cd05b
TC
4171# define PERL_GCC_BRACE_GROUPS_FORBIDDEN
4172# endif
4173#endif
4174
d1442cc4
TC
4175#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__cplusplus)
4176# ifndef PERL_USE_GCC_BRACE_GROUPS
4177# define PERL_USE_GCC_BRACE_GROUPS
4178# endif
4179#endif
4180