File Coverage

ppport.h
Criterion Covered Total %
statement 24 36 66.6
branch 21 32 65.6
condition n/a
subroutine n/a
pod n/a
total 45 68 66.1


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