: real (full) name, with any appropriate thread context paramaters, thus hiding
: that detail from the typical code.
:
-: Most macros listed here are the complete full name.
+: Most macros (as opposed to function) listed here are the complete full name.
:
: All non-static functions defined by perl need to be listed in this file.
: embed.pl uses the entries here to construct:
: 2) embed.h to create short name macros
:
: Static functions internal to a file need not appear here, but there is
-: benefit to declaring them here, as it generally handles the thread context
-: parameter invisibly, as well as making sure a PERL_ARGS_ASSERT_foo macro is
-: defined, which can save you debugging time.
+: benefit to declaring them here:
+: 1) It generally handles the thread context parameter invisibly making it
+: trivial to add or remove needing thread context passed;
+: 2) It defines a PERL_ARGS_ASSERT_foo macro, which can save you debugging
+: time;
+: 3) It is is automatically known to Devel::PPPort, making it quicker to
+: later find out when it came into existence. For example
+: perl ppport.h --api-info=/edit_distance/
+: yields
+: Supported at least since perl-5.23.8, with or without ppport.h.
:
: Lines in this file are of the form:
: flags|return_type|name|arg1|arg2|...|argN
: The E flag is used instead for a function and its short name that is supposed
: to be used only in the core, and in extensions compiled with the
: PERL_EXT symbol defined. Again, on some platforms, the function
-: will be visible everywhere, so the 'p' flag is gnerally needed.
-: Also note that an XS writer can always cheat and pretend to be an
-: extension by #defining PERL_EXT.
+: will be visible everywhere, so one of the 'p' or 'S' flags is
+: generally needed. Also note that an XS writer can always cheat
+: and pretend to be an extension by #defining PERL_EXT.
:
: The X flag is similar to the C flag in that the function (whose entry better
: have the 'p' flag) is accessible everywhere on all platforms.
: function in its full 'Perl_' form with any necessary thread
: context parameter.
:
+: Just below is a description of the relevant parts of the automatic
+: documentation generation system which heavily involves this file. Below that
+: is a description of all the flags used in this file.
+:
: Scattered around the perl source are lines of the form:
:
: =for apidoc name
+: =for apidoc_item name
+:
+: followed by pod for that function. The purpose of these lines and the text
+: that immediately follows them is to furnish documentation for functions
+: and macros listed here in embed.fnc. The lines tend to be placed near the
+: source for the item they describe. autodoc.pl is run as part of the standard
+: build process to extract this documentation and build perlapi.pod from the
+: elements that are in the API (flagged as A in this file), and perlintern.pod
+: from the other elements.
+:
+: 'name' in the apidoc line corresponds to an item listed in this file, so that
+: the signature and flags need only be specified once, here, and automatically
+: they get placed into the generated pod.
+:
+: 'apidoc_item' is used for subsidiary entries, which share the same pod as the
+: plain apidoc one does. Thus the documentation for functions which do
+: essentially the same thing, but with minor differences can all be placed in
+: the same entry. The apidoc_item lines must all come after the apidoc line
+: and before the pod for the entry.
+:
+: The entries in this file that have corresponding '=for apidoc' entries must
+: have the 'd' flag set in this file.
+:
+: In C files, the apidoc lines are inside comment blocks. They may also be
+: placed in pod files. In those, the =for causes lines from there until the
+: next line beginning with an '=' to not be considered part of that pod.
+:
+: The 'h' flag is used to hide (suppress) the pod associated with =apidoc lines
+: from being placed in the generated perlapi or perlintern. There are several
+: reasons you might want to do this, given in the 'h' flag description below,
+: but one is for the case where the =apidoc occurs in a file that contains
+: regular pod. Without that flag, the associated pod will be placed in both
+: it, and perlapi or perlintern. That may be what you want, but it gives you
+: the flexibility to choose that, or instead have just a link to the source pod
+: inserted in perlapi or perlintern. This allows single-source browsing for
+: someone; they don't have to scan multiple pods trying to find something
+: suitable.
+:
+: There are also lines of this form scattered around the perl
+: source:
+:
+: =for apidoc_section Section Name
+: =head1 Section Name
+:
+: These aren't tied to this embed.fnc file, and so are documented in autodoc.pl.
+:
+: What goes into the documentation of a particular function ends with the next
+: line that begins with an '='. In particular, an '=cut' line ends that
+: documentation without introducing something new.
+:
+: Various macros and other elements aren't listed here in embed.fnc. They are
+: documented in the same manner, but since they don't have this file to get
+: information from, the defining lines have the syntax and meaning they do in
+: this file, so it can be specified:
+:
+: =for apidoc flags|return_type|name|arg1|arg2|...|argN
+: =for apidoc_item flags|return_type|name|arg1|arg2|...|argN
:
-: followed by pod for that function. The purpose of these is to tell
-: autodoc.pl where the documentation is for a function listed in this file. It
-: uses the prototype from here and the pod from there in generating the
-: documentation in perlapi or perlintern. The entries in this file that have
-: corresponding '=for apidoc' entries should have the 'd' flag set in this
-: file.
+: The 'name' in any such line must not be the same as any in this file (i.e.,
+: no redundant definitions), and one of the flags on the apidoc lines must be
+: 'm', indicating it is a macro (or similar), and not a function.
:
-: There are also lines of this form scattered around:
+: All but the name field of an apidoc_item line are optional, and if empty,
+: inherits from the controlling plain apidoc line. The flags field is
+: generally empty, and in fact, the only flags it can have are ones directly
+: related to its display. For example it might have the T flag to indicate no
+: thread context parameter is used, whereas the apidoc entry does have a thread
+: context. Here is an example:
:
-: =for apidoc flags|return_type|name|arg1|arg2|...|argN
+: =for apidoc Am|char* |SvPV |SV* sv|STRLEN len
+: =for apidoc_item |const char*|SvPV_const |SV* sv|STRLEN len
+: =for apidoc_item |char* |SvPV_nolen |SV* sv
+:
+: Since these are macros, the arguments need not be legal C parameters. To
+: indicate this to downstream software that inspects these lines, there are a
+: few conventions. An example would be:
:
-: and with the same meanings as the lines in this file. These are for
-: documenting macros. The 'name' in any such line must not be the same as any
-: in this file (i.e., no redundant definitions), and one of the flags must be
-: 'm', indicating it is a macro. The lines following these are pod for the
-: respective macro. Since these are macros, the arguments need not be legal C
-: parameters. To indicate this to downstream software that inspects these
-: lines, there are a few conventions:
-: type should be the entire argument name if it names a type
-: cast should be the entire argument name if it is a cast
-: SP should be the entire argument name if it is the stack pointer SP
-: block should be the entire argument name if it is a C brace-enclosed block
-:
-: The letters above are exact. For example, you have to have 't', 'y', 'p',
-: and 'e' literally. Here is an example:
: =for apidoc Am|void|Newxc|void* ptr|int nitems|type|cast
:
-: Additionally, an argument can be some word(s) enclosed in double quotes to
-: indicate that it has to be a string, instead of a const char * const, like this
-: =for apidoc Ama|SV*|newSVpvs|"string"
+: In this example, a real call of Newxc, 'type' would be specified as something
+: like 'int' or 'char', and 'cast' by perhaps 'struct foo'.
+:
+: The complete list of conventions is:
+: type the argument names a type
+: cast the argument names a type which the macro casts to
+: SP the argument is the stack pointer, SP
+: block the argument is a C brace-enclosed block
+: number the argument is a C numeric constant, like 3
+: token the argument is a generic C preprocessor token, like abc
+: "string" the argument is a literal C double-quoted string; what's important
+: here are the quotes; for clarity, you can say whatever you want
+: inside them
+:
+: Unlike other arguments, none of these is of the form 'int name'. There is no
+: name.
+:
+: If any argument or return value is not one of the above, and isn't legal C
+: language, the entry still can be specified, using the 'u' flag.
:
-: If any argument or return value is not one of the above, and isn't a legal C
-: language one, the 'u' flag should be specified.
+: 'return_type' in these lines can be empty, unlike in this file:
:
-: Again, autodoc uses these lines to construct perlapi. 'return_type' in these
-: lines can be empty, unlike in this file.
+: =for apidoc Amnu||START_EXTERN_C
:
: Devel::PPPort also looks at both this file and the '=for apidoc' lines. In
-: part it is to construct lists of functions that are or are not backported.
+: part it is to construct lists of elements that are or are not backported.
:
: makedef.pl uses this file for constructing the export list which lists the
: symbols that should be available on all platforms.
:
: f Function takes a format string. If the function name =~ qr/strftime/
: then it is assumed to take a strftime-style format string as the 1st
-: arg; otherwise it's assumed to be a printf style format string, varargs
-: (hence any entry that would otherwise go in embed.h is suppressed):
+: arg; otherwise it's assumed to take a printf style format string, not
+: necessarily the 1st arg. All the arguments following it (including
+: possibly '...') are assumed to be for the format.
:
+: embed.h: any entry in here is suppressed because of varargs
: proto.h: add __attribute__format__ (or ...null_ok__)
:
+: F Function has a '...' parameter, but don't assume it is a format. This
+: is to make sure that new functions with formats can't be added without
+: considering if they are format functions or not. A reason to use this
+: flag even on a format function is if the format would generate
+: error: format string argument is not a string type
+:
: G Suppress empty PERL_ARGS_ASSERT_foo macro. Normally such a macro is
: generated for all entries for functions 'foo' in this file. If there is
: a pointer argument to 'foo', it needs to be declared in this file as
: proto.h: PERL_ARGS_ASSERT macro is not defined unless the function
: has NN arguments
:
-: h Hide any documentation. This is used when the documentation is atypical
-: of the rest of perlapi and perlintern. In other words the item is
-: documented, but just not the standard way. One reason would be if there
-: are a bunch of macros which follow a common paradigm in their naming, so
-: rather than having an entry for each slight variation, there is an
-: overarchinge one. It is also used when the documentation is in another
-: pod, such as perlguts or warnings.h. This flag is useful for downstream
-: programs, such as Devel::PPPort.
+: h Hide any documentation that would normally go into perlapi or
+: perlintern. This is typically used when the documentation is actually
+: in another pod. If you don't use the 'h', that documentation is
+: displayed in both places; with the flag, it stays in the pod, and a
+: link to that pod is instead placed in perlapi or perlintern. This
+: allows one to browse perlapi or perlintern and see all the potentially
+: relevant elements. A good example is perlapio. It has documentation
+: about PerlIO functions with other text giving context. There's no point
+: in writing a second entry for perlapi, but it would be good if someone
+: browsing perlapi knew about it. By adding '=for apidoc' lines in
+: perlapio, the appropriate text could be simply copied into perlapi if
+: deemed appropriate, or just a link added there when the 'h' flag is
+: specified.
+: This flag is useful for symbolic names for flags. A single =for apidoc
+: line can be added to the pod where the meaning is discussed, and perlapi
+: will list the name, with a link to the pod. Another use would be if
+: there are a bunch of macros which follow a common paradigm in their
+: naming, so rather than having an entry for each slight variation, there
+: is an overarching one. This flag is useful for downstream programs,
+: such as Devel::PPPort.
:
: i inline static. This is used for functions that the compiler is being
: requested to inline. If the function is in a header file its
: definition will be visible (unless guarded by #if..#endif) to all
: XS code. (A typical guard will be that it is being included in a
: particular C file(s) or in the perl core.) Therefore, all
-: non-guarded function should also have the 'p' flag specified to avoid
+: non-guarded functions should also have the 'p' flag specified to avoid
: polluting the XS code name space. Otherwise an error is generated if
: the 'S' flag is not also specified.
:
: proto.h: function is declared as PERL_STATIC_INLINE
:
+: I This flag works exactly the same as 'i' but it also adds
+: __attribute__((always_inline)) or __forceinline if either of them is
+: supported by the compiler.
+:
+: proto.h: function is declared as PERL_STATIC_FORCE_INLINE and
+: __attribute__always_inline__ is added
+:
: m Implemented as a macro; there is no function associated with this name,
: and hence no long Perl_ or S_ name. However, if the macro name itself
: begins with 'Perl_', autodoc.pl will show a thread context parameter
: characters, and a warning is raised otherwise. This flag suppresses
: that warning, so that weird things can be documented
:
-: n Has no arguments (used only in =for apidoc entries)
-:
+: n Has no arguments. (used only in =for apidoc entries)
: The macro (it can't be a function) is used without any parameters nor
: empty parentheses.
:
+: Perhaps a better name for this flag would have been '0'. The reason the
+: flag was not changed to that from 'n', is if D:P were to be regenerated
+: on an older perl, it still would use the new embed.fnc shipped with it,
+: but would be using the flags from the older perl source code.
+:
+:
: O Has a perl_ compatibility macro.
:
: The really OLD name for API funcs.
:
: gcc has a bug (which they claim is a feature) in which casting the
: result of one of these to (void) doesn't silence the warning that the
-: result is ignored.
+: result is ignored. (Perl has a workaround for this bug, see
+: PERL_UNUSED_RESULT docs)
:
: proto.h: add __attribute__warn_unused_result__
:
:
: Individual flags may be separated by non-tab whitespace.
+CipRTX |char * |mortal_getenv |NN const char * str
+
#if defined(PERL_IMPLICIT_SYS)
ATo |PerlInterpreter*|perl_alloc_using \
|NN struct IPerlMem *ipM \
EXp |void |av_reify |NN AV *av
ApdR |SV* |av_shift |NN AV *av
Apd |SV** |av_store |NN AV *av|SSize_t key|NULLOK SV *val
-AidRp |SSize_t|av_top_index |NN AV *av
+AMdRp |SSize_t|av_top_index |NN AV *av
+AidRp |Size_t |av_count |NN AV *av
AmdR |SSize_t|av_tindex |NN AV *av
Apd |void |av_undef |NN AV *av
Apdoex |SV** |av_create_and_unshift_one|NN AV **const avp|NN SV *const val
Tore |void |win32_croak_not_implemented|NN const char * fname
#endif
#if defined(PERL_IMPLICIT_CONTEXT)
-AfTrp |void |croak_nocontext|NULLOK const char* pat|...
-AfTrp |OP* |die_nocontext |NULLOK const char* pat|...
+AdfTrp |void |croak_nocontext|NULLOK const char* pat|...
+AdfTrp |OP* |die_nocontext |NULLOK const char* pat|...
AfTp |void |deb_nocontext |NN const char* pat|...
-AfTp |char* |form_nocontext |NN const char* pat|...
-ATp |void |load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|...
-AfTp |SV* |mess_nocontext |NN const char* pat|...
-AfTp |void |warn_nocontext |NN const char* pat|...
+AdfTp |char* |form_nocontext |NN const char* pat|...
+AdFTp |void |load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|...
+AdfTp |SV* |mess_nocontext |NN const char* pat|...
+AdfTp |void |warn_nocontext |NN const char* pat|...
AfTp |void |warner_nocontext|U32 err|NN const char* pat|...
-AfTp |SV* |newSVpvf_nocontext|NN const char *const pat|...
-AfTp |void |sv_catpvf_nocontext|NN SV *const sv|NN const char *const pat|...
-AfTp |void |sv_setpvf_nocontext|NN SV *const sv|NN const char *const pat|...
-AfTp |void |sv_catpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
-AfTp |void |sv_setpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
+AdfTp |SV* |newSVpvf_nocontext|NN const char *const pat|...
+AdfTp |void |sv_catpvf_nocontext|NN SV *const sv|NN const char *const pat|...
+AdfTp |void |sv_setpvf_nocontext|NN SV *const sv|NN const char *const pat|...
+AdfTp |void |sv_catpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
+AdfTp |void |sv_setpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
AbfTpD |int |fprintf_nocontext|NN PerlIO *stream|NN const char *format|...
AbfTpD |int |printf_nocontext|NN const char *format|...
#endif
pR |SV * |defelem_target |NN SV *sv|NULLOK MAGIC *mg
ATp |char* |delimcpy |NN char* to|NN const char* toend|NN const char* from \
|NN const char* fromend|int delim|NN I32* retlen
-Tp |char* |delimcpy_no_escape|NN char* to|NN const char* toend \
- |NN const char* from \
- |NN const char* fromend|int delim \
+Tpd |char* |delimcpy_no_escape|NN char* to|NN const char* toend \
+ |NN const char* from \
+ |NN const char* fromend|int delim \
|NN I32* retlen
: Used in op.c, perl.c
px |void |delete_eval_scope
p |bool|do_exec |NN const char* cmd
#endif
-#if defined(WIN32) || defined(__SYMBIAN32__) || defined(VMS)
+#if defined(WIN32) || defined(VMS)
Ap |int |do_aspawn |NULLOK SV* really|NN SV** mark|NN SV** sp
Ap |int |do_spawn |NN char* cmd
Ap |int |do_spawn_nowait|NN char* cmd
Apd |void |fbm_compile |NN SV* sv|U32 flags
ApdR |char* |fbm_instr |NN unsigned char* big|NN unsigned char* bigend \
|NN SV* littlestr|U32 flags
+pEXTR |const char *|cntrl_to_mnemonic|const U8 c
p |CV * |find_lexical_cv|PADOFFSET off
: Defined in util.c, used only in perl.c
p |char* |find_script |NN const char *scriptname|bool dosearch \
Sd |OP* |traverse_op_tree|NN OP* top|NN OP* o
#endif
Afpd |char* |form |NN const char* pat|...
-Ap |char* |vform |NN const char* pat|NULLOK va_list* args
-Ap |void |free_tmps
+Adp |char* |vform |NN const char* pat|NULLOK va_list* args
+Cp |void |free_tmps
#if defined(PERL_IN_OP_C)
S |void |gen_constant_list|NULLOK OP* o
#endif
|I32 autoload
Apx |GV* |gv_fetchmethod_sv_flags|NN HV* stash|NN SV* namesv|U32 flags
Apx |GV* |gv_fetchmethod_pv_flags|NN HV* stash|NN const char* name \
- |U32 flags
+ |U32 flags
Apx |GV* |gv_fetchmethod_pvn_flags|NN HV* stash|NN const char* name \
|const STRLEN len|U32 flags
Ap |GV* |gv_fetchpv |NN const char *nambeg|I32 add|const svtype sv_type
p |void |gv_setref |NN SV *const dstr|NN SV *const sstr
Apd |HV* |gv_stashpv |NN const char* name|I32 flags
Apd |HV* |gv_stashpvn |NN const char* name|U32 namelen|I32 flags
+#if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
+EpG |HV* |gv_stashsvpvn_cached |NULLOK SV *namesv|NULLOK const char* name|U32 namelen|I32 flags
+#endif
#if defined(PERL_IN_GV_C)
i |HV* |gv_stashpvn_internal |NN const char* name|U32 namelen|I32 flags
-iG |HV* |gv_stashsvpvn_cached |NULLOK SV *namesv|NULLOK const char* name|U32 namelen|I32 flags
i |GV* |gv_fetchmeth_internal |NULLOK HV* stash|NULLOK SV* meth|NULLOK const char* name \
|STRLEN len|I32 level|U32 flags
#endif
AbMdp |SV** |hv_fetch |NULLOK HV *hv|NN const char *key|I32 klen \
|I32 lval
AbMdp |HE* |hv_fetch_ent |NULLOK HV *hv|NN SV *keysv|I32 lval|U32 hash
-Ap |void* |hv_common |NULLOK HV *hv|NULLOK SV *keysv \
+Cp |void* |hv_common |NULLOK HV *hv|NULLOK SV *keysv \
|NULLOK const char* key|STRLEN klen|int flags \
|int action|NULLOK SV *val|U32 hash
-Ap |void* |hv_common_key_len|NULLOK HV *hv|NN const char *key \
+Cp |void* |hv_common_key_len|NULLOK HV *hv|NN const char *key \
|I32 klen_i32|const int action|NULLOK SV *val \
|const U32 hash
Apod |STRLEN |hv_fill |NN HV *const hv
AdiTp |I32 |foldEQ |NN const char* a|NN const char* b|I32 len
AdmP |I32 |ibcmp_locale |NN const char* a|NN const char* b|I32 len
AiTpd |I32 |foldEQ_locale |NN const char* a|NN const char* b|I32 len
-Am |I32 |ibcmp_utf8 |NN const char *s1|NULLOK char **pe1|UV l1 \
+Adm |I32 |ibcmp_utf8 |NN const char *s1|NULLOK char **pe1|UV l1 \
|bool u1|NN const char *s2|NULLOK char **pe2 \
|UV l2|bool u2
Amd |I32 |foldEQ_utf8 |NN const char *s1|NULLOK char **pe1|UV l1 \
Cp |I32 |foldEQ_utf8_flags |NN const char *s1|NULLOK char **pe1|UV l1 \
|bool u1|NN const char *s2|NULLOK char **pe2 \
|UV l2|bool u2|U32 flags
-AiTp |I32 |foldEQ_latin1 |NN const char* a|NN const char* b|I32 len
+CiTp |I32 |foldEQ_latin1 |NN const char* a|NN const char* b|I32 len
#if defined(PERL_IN_DOIO_C)
SR |bool |ingroup |Gid_t testgid|bool effective
#endif
|bool not_implicit|bool warn_on_fail
: Used in perly.y
pR |OP* |invert |NULLOK OP* cmd
+pR |OP* |cmpchain_start |I32 type|NULLOK OP* left \
+ |NULLOK OP* right
+pR |OP* |cmpchain_extend|I32 type|NN OP* ch|NULLOK OP* right
+pR |OP* |cmpchain_finish|NN OP* ch
ApR |I32 |is_lvalue_sub
: Used in cop.h
XopR |I32 |was_lvalue_sub
|const bool consider_overlongs
# endif
#endif
-#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-EXTp |UV |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags
-#endif
#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
p |UV |_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_or_s
#endif
#endif
: Used in perly.y
p |OP* |jmaybe |NN OP *o
-: Used in pp.c
+: Used in pp.c
pP |I32 |keyword |NN const char *name|I32 len|bool all_keywords
#if defined(PERL_IN_OP_C)
S |void |inplace_aassign |NN OP* o
S |OP* |listkids |NULLOK OP* o
#endif
p |OP* |list |NULLOK OP* o
-Apd |void |load_module|U32 flags|NN SV* name|NULLOK SV* ver|...
+AFpd |void |load_module|U32 flags|NN SV* name|NULLOK SV* ver|...
Ap |void |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args
: Used in perly.y
p |OP* |localize |NN OP *o|I32 lex
ApdR |I32 |looks_like_number|NN SV *const sv
-Apd |UV |grok_bin |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C)
-EpRX |bool |grok_bslash_x |NN char** s \
- |NN const char* const send \
- |NN UV* uv \
- |NN const char** error_msg \
- |const bool output_warning \
- |const bool strict \
- |const bool silence_non_portable \
- |const bool utf8
-EpRX |char |grok_bslash_c |const char source|const bool output_warning
-EpRX |bool |grok_bslash_o |NN char** s \
- |NN const char* const send \
- |NN UV* uv \
- |NN const char** error_msg \
- |const bool output_warning \
- |const bool strict \
- |const bool silence_non_portable \
- |const bool utf8
-EiR |char*|form_short_octal_warning|NN const char * const s \
- |const STRLEN len
-EiRT |I32 |regcurly |NN const char *s
-#endif
-Apd |UV |grok_hex |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
+AMpd |UV |grok_hex |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
Apd |int |grok_infnan |NN const char** sp|NN const char *send
Apd |int |grok_number |NN const char *pv|STRLEN len|NULLOK UV *valuep
Apd |int |grok_number_flags|NN const char *pv|STRLEN len|NULLOK UV *valuep|U32 flags
ApdR |bool |grok_numeric_radix|NN const char **sp|NN const char *send
-Apd |UV |grok_oct |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
+ApMd |UV |grok_oct |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
+ApMd |UV |grok_bin |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
+Cp |UV |grok_bin_oct_hex|NN const char* start \
+ |NN STRLEN* len_p \
+ |NN I32* flags \
+ |NULLOK NV *result \
+ |const unsigned shift \
+ |const U8 lookup_bit \
+ |const char prefix
+#ifdef PERL_IN_NUMERIC_C
+S |void |output_non_portable|const U8 shift
+#endif
EXpdT |bool |grok_atoUV |NN const char* pv|NN UV* valptr|NULLOK const char** endptr
: These are all indirectly referenced by globals.c. This is somewhat annoying.
p |int |magic_clearenv |NN SV* sv|NN MAGIC* mg
p |int |magic_set_all_env|NN SV* sv|NN MAGIC* mg
p |U32 |magic_sizepack |NN SV* sv|NN MAGIC* mg
p |int |magic_wipepack |NN SV* sv|NN MAGIC* mg
-pod |SV* |magic_methcall |NN SV *sv|NN const MAGIC *mg \
+Fpod |SV* |magic_methcall |NN SV *sv|NN const MAGIC *mg \
|NN SV *meth|U32 flags \
|U32 argc|...
Ap |I32 * |markstack_grow
Apd |void |my_setenv |NULLOK const char* nam|NULLOK const char* val
ApMb |I32 |my_stat
pX |I32 |my_stat_flags |NULLOK const U32 flags
-Afp |char * |my_strftime |NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
+Adfp |char * |my_strftime |NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
: Used in pp_ctl.c
p |void |my_unexec
CbDTPR |UV |NATIVE_TO_NEED |const UV enc|const UV ch
ApdR |SV* |newSVpvn_share |NULLOK const char* s|I32 len|U32 hash
ApdR |SV* |newSVpv_share |NULLOK const char* s|U32 hash
AfpdR |SV* |newSVpvf |NN const char *const pat|...
-ApR |SV* |vnewSVpvf |NN const char *const pat|NULLOK va_list *const args
+ApRd |SV* |vnewSVpvf |NN const char *const pat|NULLOK va_list *const args
Apd |SV* |newSVrv |NN SV *const rv|NULLOK const char *const classname
ApMbdR |SV* |newSVsv |NULLOK SV *const old
AmdR |SV* |newSVsv_nomg |NULLOK SV *const old
: Defined in doio.c, used only in pp_hot.c
dopx |PerlIO*|start_glob |NN SV *tmpglob|NN IO *io
-Ap |void |reentrant_size
-Ap |void |reentrant_init
-Ap |void |reentrant_free
-ATp |void* |reentrant_retry|NN const char *f|...
+Cp |void |reentrant_size
+Cp |void |reentrant_init
+Cp |void |reentrant_free
+CFTp |void* |reentrant_retry|NN const char *f|...
: "Very" special - can't use the O flag for this one:
: (The rename from perl_atexit to Perl_call_atexit was in 864dbfa3ca8032ef)
ApdO |void |require_pv |NN const char* pv
AbpdM |void |pack_cat |NN SV *cat|NN const char *pat|NN const char *patend \
|NN SV **beglist|NN SV **endlist|NN SV ***next_in_list|U32 flags
-Apd |void |packlist |NN SV *cat|NN const char *pat|NN const char *patend|NN SV **beglist|NN SV **endlist
+Apd |void |packlist |NN SV *cat|NN const char *pat|NN const char *patend|NN SV **beglist|NN SV **endlist
#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
S |void |pidgone |Pid_t pid|int status
#endif
#if defined(PERL_IN_OP_C)
S |OP* |pmtrans |NN OP* o|NN OP* expr|NN OP* repl
#endif
+p |void |invmap_dump |NN SV* invlist|NN UV * map
Ap |void |pop_scope
Ap |void |push_scope
#if defined(PERL_IN_PERLY_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_TOKE_C)
#if defined(PERL_IN_OP_C)
S |OP* |refkids |NULLOK OP* o|I32 type
#endif
-Ap |void |regdump |NN const regexp* r
-CiTop |struct regexp *|ReANY |NN const REGEXP * const re
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
-EXpR |SV* |_new_invlist_C_array|NN const UV* const list
-EXp |bool |_invlistEQ |NN SV* const a|NN SV* const b|const bool complement_b
-#endif
-Ap |I32 |pregexec |NN REGEXP * const prog|NN char* stringarg \
- |NN char* strend|NN char* strbeg \
- |SSize_t minend |NN SV* screamer|U32 nosave
-Ap |void |pregfree |NULLOK REGEXP* r
-Ap |void |pregfree2 |NN REGEXP *rx
-: FIXME - is anything in re using this now?
-EXp |REGEXP*|reg_temp_copy |NULLOK REGEXP* dsv|NN REGEXP* ssv
-Ap |void |regfree_internal|NN REGEXP *const rx
-#if defined(USE_ITHREADS)
-Ap |void* |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
-#endif
-EXp |regexp_engine const *|current_re_engine
-Ap |REGEXP*|pregcomp |NN SV * const pattern|const U32 flags
-p |REGEXP*|re_op_compile |NULLOK SV ** const patternp \
- |int pat_count|NULLOK OP *expr \
- |NN const regexp_engine* eng \
- |NULLOK REGEXP *old_re \
- |NULLOK bool *is_bare_re \
- |const U32 rx_flags|const U32 pm_flags
-Ap |REGEXP*|re_compile |NN SV * const pattern|U32 orig_rx_flags
-Cp |char* |re_intuit_start|NN REGEXP * const rx \
- |NULLOK SV* sv \
- |NN const char* const strbeg \
- |NN char* strpos \
- |NN char* strend \
- |const U32 flags \
- |NULLOK re_scream_pos_data *data
-Cp |SV* |re_intuit_string|NN REGEXP *const r
-Ap |I32 |regexec_flags |NN REGEXP *const rx|NN char *stringarg \
- |NN char *strend|NN char *strbeg \
- |SSize_t minend|NN SV *sv \
- |NULLOK void *data|U32 flags
-ApR |regnode*|regnext |NULLOK regnode* p
-EXp |SV*|reg_named_buff |NN REGEXP * const rx|NULLOK SV * const key \
- |NULLOK SV * const value|const U32 flags
-EXp |SV*|reg_named_buff_iter |NN REGEXP * const rx|NULLOK const SV * const lastkey \
- |const U32 flags
-Ap |SV*|reg_named_buff_fetch |NN REGEXP * const rx|NN SV * const namesv|const U32 flags
-Ap |bool|reg_named_buff_exists |NN REGEXP * const rx|NN SV * const key|const U32 flags
-Ap |SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags
-Ap |SV*|reg_named_buff_nextkey |NN REGEXP * const rx|const U32 flags
-Ap |SV*|reg_named_buff_scalar |NN REGEXP * const rx|const U32 flags
-Ap |SV*|reg_named_buff_all |NN REGEXP * const rx|const U32 flags
-
-: FIXME - is anything in re using this now?
-EXp |void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv
-: FIXME - is anything in re using this now?
-EXp |void|reg_numbered_buff_store|NN REGEXP * const rx|const I32 paren|NULLOK SV const * const value
-: FIXME - is anything in re using this now?
-EXp |I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|const I32 paren
-
-: FIXME - is anything in re using this now?
-EXp |SV*|reg_qr_package|NN REGEXP * const rx
ATp |void |repeatcpy |NN char* to|NN const char* from|I32 len|IV count
AdTpP |char* |rninstr |NN const char* big|NN const char* bigend \
p |I32 |same_dirent |NN const char* a|NN const char* b
#endif
Apda |char* |savepv |NULLOK const char* pv
-Apda |char* |savepvn |NULLOK const char* pv|I32 len
+Apda |char* |savepvn |NULLOK const char* pv|Size_t len
Apda |char* |savesharedpv |NULLOK const char* pv
: NULLOK only to suppress a compiler warning
Ap |I32 |save_alloc |I32 size|I32 pad
Apdh |void |save_aptr |NN AV** aptr
Apdh |AV* |save_ary |NN GV* gv
-Ap |void |save_bool |NN bool* boolp
-Ap |void |save_clearsv |NN SV** svp
-Ap |void |save_delete |NN HV *hv|NN char *key|I32 klen
+Cp |void |save_bool |NN bool* boolp
+Cp |void |save_clearsv |NN SV** svp
+Cp |void |save_delete |NN HV *hv|NN char *key|I32 klen
Ap |void |save_hdelete |NN HV *hv|NN SV *keysv
Ap |void |save_adelete |NN AV *av|SSize_t key
-Ap |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|NN void* p
-Ap |void |save_destructor_x|DESTRUCTORFUNC_t f|NULLOK void* p
-ApMb |void |save_freesv |NULLOK SV* sv
+Cp |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|NN void* p
+Cp |void |save_destructor_x|DESTRUCTORFUNC_t f|NULLOK void* p
+CpMb |void |save_freesv |NULLOK SV* sv
: Used in SAVEFREOP(), used in op.c, pp_ctl.c
-ApMb |void |save_freeop |NULLOK OP* o
-ApMb |void |save_freepv |NULLOK char* pv
+CpMb |void |save_freeop |NULLOK OP* o
+CpMb |void |save_freepv |NULLOK char* pv
Ap |void |save_generic_svref|NN SV** sptr
Ap |void |save_generic_pvref|NN char** str
Ap |void |save_shared_pvref|NN char** str
Am |void |save_helem |NN HV *hv|NN SV *key|NN SV **sptr
Ap |void |save_helem_flags|NN HV *hv|NN SV *key|NN SV **sptr|const U32 flags
Apdh |void |save_hptr |NN HV** hptr
-Ap |void |save_I16 |NN I16* intp
-Ap |void |save_I32 |NN I32* intp
-Ap |void |save_I8 |NN I8* bytep
-Ap |void |save_int |NN int* intp
+Cp |void |save_I16 |NN I16* intp
+Cp |void |save_I32 |NN I32* intp
+Cp |void |save_I8 |NN I8* bytep
+Cp |void |save_int |NN int* intp
Apdh |void |save_item |NN SV* item
-Ap |void |save_iv |NN IV *ivp
+Cp |void |save_iv |NN IV *ivp
AbpDdh |void |save_list |NN SV** sarg|I32 maxsarg
-AbpD |void |save_long |NN long* longp
-ApMb |void |save_mortalizesv|NN SV* sv
+CbpD |void |save_long |NN long* longp
+CpMb |void |save_mortalizesv|NN SV* sv
AbpD |void |save_nogv |NN GV* gv
: Used in SAVEFREOP(), used in gv.c, op.c, perl.c, pp_ctl.c, pp_sort.c
ApMb |void |save_op
Apdh |SV* |save_scalar |NN GV* gv
-Ap |void |save_pptr |NN char** pptr
+Cp |void |save_pptr |NN char** pptr
Ap |void |save_vptr |NN void *ptr
-Ap |void |save_re_context
+Cp |void |save_re_context
Ap |void |save_padsv_and_mortalize|PADOFFSET off
-Ap |void |save_sptr |NN SV** sptr
+Cp |void |save_sptr |NN SV** sptr
Xp |void |save_strlen |NN STRLEN* ptr
Apdh |SV* |save_svref |NN SV** sptr
Axpo |void |savetmps
pe |void |set_caret_X
Apd |void |setdefout |NN GV* gv
Ap |HEK* |share_hek |NN const char* str|SSize_t len|U32 hash
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+#ifdef PERL_USE_3ARG_SIGHANDLER
: Used in perl.c
-Tp |Signal_t |sighandler |int sig|NULLOK siginfo_t *info|NULLOK void *uap
-ATp |Signal_t |csighandler |int sig|NULLOK siginfo_t *info|NULLOK void *uap
+Tp |Signal_t |sighandler |int sig|NULLOK Siginfo_t *info|NULLOK void *uap
+ATp |Signal_t |csighandler |int sig|NULLOK Siginfo_t *info|NULLOK void *uap
#else
Tp |Signal_t |sighandler |int sig
ATp |Signal_t |csighandler |int sig
#endif
+Tp |Signal_t |sighandler1 |int sig
+ATp |Signal_t |csighandler1 |int sig
+Tp |Signal_t |sighandler3 |int sig|NULLOK Siginfo_t *info|NULLOK void *uap
+ATp |Signal_t |csighandler3 |int sig|NULLOK Siginfo_t *info|NULLOK void *uap
+ATp |Signal_t |perly_sighandler |int sig|NULLOK Siginfo_t *info|NULLOK void *uap|bool safe
Ap |SV** |stack_grow |NN SV** sp|NN SV** p|SSize_t n
Ap |I32 |start_subparse |I32 is_format|U32 flags
Xp |void |init_named_cv |NN CV *cv|NN OP *nameop
: Used in pp_ctl.c
p |void |sub_crush_depth|NN CV* cv
-ApbMd |bool |sv_2bool |NN SV *const sv
-Apd |bool |sv_2bool_flags |NN SV *sv|I32 flags
+CpbMd |bool |sv_2bool |NN SV *const sv
+Cpd |bool |sv_2bool_flags |NN SV *sv|I32 flags
Apd |CV* |sv_2cv |NULLOK SV* sv|NN HV **const st|NN GV **const gvp \
|const I32 lref
Apd |IO* |sv_2io |NN SV *const sv
AbpD |char* |sv_pvn_nomg |NN SV* sv|NULLOK STRLEN* lp
ApMb |UV |sv_2uv |NN SV *sv
Apd |UV |sv_2uv_flags |NN SV *const sv|const I32 flags
-AbpdD |IV |sv_iv |NN SV* sv
-AbpdD |UV |sv_uv |NN SV* sv
-AbpdD |NV |sv_nv |NN SV* sv
-AbpdD |char* |sv_pvn |NN SV *sv|NN STRLEN *lp
-AbpdD |char* |sv_pvutf8n |NN SV *sv|NN STRLEN *lp
-AbpdD |char* |sv_pvbyten |NN SV *sv|NN STRLEN *lp
-Apd |I32 |sv_true |NULLOK SV *const sv
+CbpdD |IV |sv_iv |NN SV* sv
+CbpdD |UV |sv_uv |NN SV* sv
+CbpdD |NV |sv_nv |NN SV* sv
+CbpdD |char* |sv_pvn |NN SV *sv|NN STRLEN *lp
+CbpdD |char* |sv_pvutf8n |NN SV *sv|NN STRLEN *lp
+CbpdD |char* |sv_pvbyten |NN SV *sv|NN STRLEN *lp
+Cpd |I32 |sv_true |NULLOK SV *const sv
#if defined(PERL_IN_SV_C)
Sd |void |sv_add_arena |NN char *const ptr|const U32 size \
|const U32 flags
ApdR |bool |sv_derived_from_pv|NN SV* sv|NN const char *const name|U32 flags
ApdR |bool |sv_derived_from_pvn|NN SV* sv|NN const char *const name \
|const STRLEN len|U32 flags
+ApdRx |bool |sv_isa_sv |NN SV* sv|NN SV* namesv
ApdR |bool |sv_does |NN SV* sv|NN const char *const name
ApdR |bool |sv_does_sv |NN SV* sv|NN SV* namesv|U32 flags
ApdR |bool |sv_does_pv |NN SV* sv|NN const char *const name|U32 flags
: Used only in perl.c
pd |void |sv_free_arenas
Apd |char* |sv_gets |NN SV *const sv|NN PerlIO *const fp|I32 append
-Apd |char* |sv_grow |NN SV *const sv|STRLEN newlen
+Cpd |char* |sv_grow |NN SV *const sv|STRLEN newlen
Apd |void |sv_inc |NULLOK SV *const sv
Apd |void |sv_inc_nomg |NULLOK SV *const sv
ApMdb |void |sv_insert |NN SV *const bigstr|const STRLEN offset \
ApdbMR |SV* |sv_mortalcopy |NULLOK SV *const oldsv
ApdR |SV* |sv_mortalcopy_flags|NULLOK SV *const oldsv|U32 flags
ApdR |SV* |sv_newmortal
-Apd |SV* |sv_newref |NULLOK SV *const sv
+Cpd |SV* |sv_newref |NULLOK SV *const sv
Ap |char* |sv_peek |NULLOK SV* sv
Apd |void |sv_pos_u2b |NULLOK SV *const sv|NN I32 *const offsetp|NULLOK I32 *const lenp
Apd |STRLEN |sv_pos_u2b_flags|NN SV *const sv|STRLEN uoffset \
Apd |void |sv_pos_b2u |NULLOK SV *const sv|NN I32 *const offsetp
Apd |STRLEN |sv_pos_b2u_flags|NN SV *const sv|STRLEN const offset \
|U32 flags
-ApMdb |char* |sv_pvn_force |NN SV* sv|NULLOK STRLEN* lp
-Apd |char* |sv_pvutf8n_force|NN SV *const sv|NULLOK STRLEN *const lp
-Apd |char* |sv_pvbyten_force|NN SV *const sv|NULLOK STRLEN *const lp
+CpMdb |char* |sv_pvn_force |NN SV* sv|NULLOK STRLEN* lp
+Cpd |char* |sv_pvutf8n_force|NN SV *const sv|NULLOK STRLEN *const lp
+Cpd |char* |sv_pvbyten_force|NN SV *const sv|NULLOK STRLEN *const lp
Apd |char* |sv_recode_to_utf8 |NN SV* sv|NN SV *encoding
Apd |bool |sv_cat_decode |NN SV* dsv|NN SV *encoding|NN SV *ssv|NN int *offset \
|NN char* tstr|int tlen
Apd |char *|sv_setpv_bufsize|NN SV *const sv|const STRLEN cur|const STRLEN len
Xp |void |sv_sethek |NN SV *const sv|NULLOK const HEK *const hek
ApMdb |void |sv_setsv |NN SV *dstr|NULLOK SV *sstr
-ApMdb |void |sv_taint |NN SV* sv
-ApdR |bool |sv_tainted |NN SV *const sv
+CpMdb |void |sv_taint |NN SV* sv
+CpdR |bool |sv_tainted |NN SV *const sv
Apd |int |sv_unmagic |NN SV *const sv|const int type
Apd |int |sv_unmagicext |NN SV *const sv|const int type|NULLOK MGVTBL *vtbl
ApdMb |void |sv_unref |NN SV* sv
Apd |void |sv_unref_flags |NN SV *const ref|const U32 flags
-Apd |void |sv_untaint |NN SV *const sv
+Cpd |void |sv_untaint |NN SV *const sv
Apd |void |sv_upgrade |NN SV *const sv|svtype new_type
ApdMb |void |sv_usepvn |NN SV* sv|NULLOK char* ptr|STRLEN len
Apd |void |sv_usepvn_flags|NN SV *const sv|NULLOK char* ptr|const STRLEN len\
|NULLOK va_list *const args|NULLOK SV **const svargs \
|const Size_t sv_count|NULLOK bool *const maybe_tainted
ApR |NV |str_to_version |NN SV *sv
-EXpR |SV* |swash_init |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
-EXp |UV |swash_fetch |NN SV *swash|NN const U8 *ptr|bool do_utf8
-#ifdef PERL_IN_REGCOMP_C
-EiR |SV* |add_cp_to_invlist |NULLOK SV* invlist|const UV cp
-EiRT |bool |invlist_is_iterating|NN SV* const invlist
-#ifndef PERL_EXT_RE_BUILD
-EiRT |UV* |_invlist_array_init |NN SV* const invlist|const bool will_have_0
-EiRT |UV |invlist_max |NN SV* const invlist
-ES |void |_append_range_to_invlist |NN SV* const invlist|const UV start|const UV end
-ES |void |invlist_extend |NN SV* const invlist|const UV len
-ES |void |invlist_replace_list_destroys_src|NN SV *dest|NN SV *src
-EiRT |IV* |get_invlist_previous_index_addr|NN SV* invlist
-Ei |void |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
-EiT |void |invlist_set_previous_index|NN SV* const invlist|const IV index
-EiRT |IV |invlist_previous_index|NN SV* const invlist
-EiT |void |invlist_trim |NN SV* invlist
-Ei |void |invlist_clear |NN SV* invlist
-S |void |initialize_invlist_guts|NN SV* invlist|const Size_t initial_size
+Ap |void |regdump |NN const regexp* r
+CiTop |struct regexp *|ReANY |NN const REGEXP * const re
+Ap |I32 |pregexec |NN REGEXP * const prog|NN char* stringarg \
+ |NN char* strend|NN char* strbeg \
+ |SSize_t minend |NN SV* screamer|U32 nosave
+Ap |void |pregfree |NULLOK REGEXP* r
+Ap |void |pregfree2 |NN REGEXP *rx
+: FIXME - is anything in re using this now?
+EXp |REGEXP*|reg_temp_copy |NULLOK REGEXP* dsv|NN REGEXP* ssv
+Ap |void |regfree_internal|NN REGEXP *const rx
+#if defined(USE_ITHREADS)
+Ap |void* |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
#endif
-EiRT |STRLEN*|get_invlist_iter_addr |NN SV* invlist
-EiT |void |invlist_iterinit|NN SV* invlist
-ESRT |bool |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
-EiT |void |invlist_iterfinish|NN SV* invlist
-EiRT |UV |invlist_highest|NN SV* const invlist
-ERS |SV* |_make_exactf_invlist |NN RExC_state_t *pRExC_state \
- |NN regnode *node
-ESR |SV* |invlist_contents|NN SV* const invlist \
+EXp |regexp_engine const *|current_re_engine
+Ap |REGEXP*|pregcomp |NN SV * const pattern|const U32 flags
+p |REGEXP*|re_op_compile |NULLOK SV ** const patternp \
+ |int pat_count|NULLOK OP *expr \
+ |NN const regexp_engine* eng \
+ |NULLOK REGEXP *old_re \
+ |NULLOK bool *is_bare_re \
+ |const U32 rx_flags|const U32 pm_flags
+Ap |REGEXP*|re_compile |NN SV * const pattern|U32 orig_rx_flags
+Cp |char* |re_intuit_start|NN REGEXP * const rx \
+ |NULLOK SV* sv \
+ |NN const char* const strbeg \
+ |NN char* strpos \
+ |NN char* strend \
+ |const U32 flags \
+ |NULLOK re_scream_pos_data *data
+Cp |SV* |re_intuit_string|NN REGEXP *const r
+Ap |I32 |regexec_flags |NN REGEXP *const rx|NN char *stringarg \
+ |NN char *strend|NN char *strbeg \
+ |SSize_t minend|NN SV *sv \
+ |NULLOK void *data|U32 flags
+ApR |regnode*|regnext |NULLOK regnode* p
+EXp |SV*|reg_named_buff |NN REGEXP * const rx|NULLOK SV * const key \
+ |NULLOK SV * const value|const U32 flags
+EXp |SV*|reg_named_buff_iter |NN REGEXP * const rx|NULLOK const SV * const lastkey \
+ |const U32 flags
+Cp |SV*|reg_named_buff_fetch |NN REGEXP * const rx|NN SV * const namesv|const U32 flags
+Cp |bool|reg_named_buff_exists |NN REGEXP * const rx|NN SV * const key|const U32 flags
+Cp |SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags
+Cp |SV*|reg_named_buff_nextkey |NN REGEXP * const rx|const U32 flags
+Cp |SV*|reg_named_buff_scalar |NN REGEXP * const rx|const U32 flags
+Cp |SV*|reg_named_buff_all |NN REGEXP * const rx|const U32 flags
+
+: FIXME - is anything in re using this now?
+EXp |void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv
+: FIXME - is anything in re using this now?
+EXp |void|reg_numbered_buff_store|NN REGEXP * const rx|const I32 paren|NULLOK SV const * const value
+: FIXME - is anything in re using this now?
+EXp |I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|const I32 paren
+
+: FIXME - is anything in re using this now?
+EXp |SV*|reg_qr_package|NN REGEXP * const rx
+EXpRT |I16 |do_uniprop_match|NN const char * const key|const U16 key_len
+EXpRT |const char * const *|get_prop_values|const int table_index
+EXpR |SV * |get_prop_definition|const int table_index
+EXpRT |const char *|get_deprecated_property_msg|const Size_t warning_offset
+#if defined(PERL_IN_REGCOMP_C)
+EiRT |bool |invlist_is_iterating|NN SV* const invlist
+EiR |SV* |invlist_contents|NN SV* const invlist \
|const bool traditional_style
+EixRT |UV |invlist_lowest|NN SV* const invlist
ESRT |bool |new_regcurly |NN const char *s|NN const char *e
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
-m |void |_invlist_intersection |NN SV* const a|NN SV* const b|NN SV** i
-EXp |void |_invlist_intersection_maybe_complement_2nd \
- |NULLOK SV* const a|NN SV* const b \
- |const bool complement_b|NN SV** i
-Cm |void |_invlist_union |NULLOK SV* const a|NN SV* const b|NN SV** output
-EXp |void |_invlist_union_maybe_complement_2nd \
- |NULLOK SV* const a|NN SV* const b \
- |const bool complement_b|NN SV** output
-m |void |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
-EXp |void |_invlist_invert|NN SV* const invlist
-EXpR |SV* |_new_invlist |IV initial_size
-EXpR |SV* |_add_range_to_invlist |NULLOK SV* invlist|UV start|UV end
-EXpR |SV* |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
-EpX |SV* |invlist_clone |NN SV* const invlist|NULLOK SV* newlist
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
-EiRT |UV* |invlist_array |NN SV* const invlist
-EiRT |bool |is_invlist |NULLOK SV* const invlist
-EiRT |bool* |get_invlist_offset_addr|NN SV* invlist
-EiRT |UV |_invlist_len |NN SV* const invlist
-EiRT |bool |_invlist_contains_cp|NN SV* const invlist|const UV cp
-EXpRT |SSize_t|_invlist_search |NN SV* const invlist|const UV cp
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
-EiT |const char *|get_regex_charset_name|const U32 flags|NN STRLEN* const lenp
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-EXp |SV* |_get_regclass_nonbitmap_data \
- |NULLOK const regexp *prog \
- |NN const struct regnode *node \
- |bool doinit \
- |NULLOK SV **listsvp \
- |NULLOK SV **lonly_utf8_locale \
- |NULLOK SV **output_invlist
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C)
-EXp |void |_invlist_dump |NN PerlIO *file|I32 level \
- |NN const char* const indent \
- |NN SV* const invlist
-#endif
-Ap |void |taint_env
-Ap |void |taint_proper |NULLOK const char* f|NN const char *const s
-Ep |char * |_byte_dump_string \
- |NN const U8 * const start \
- |const STRLEN len \
- |const bool format
-#if defined(PERL_IN_UTF8_C)
-iTR |int |does_utf8_overflow|NN const U8 * const s \
- |NN const U8 * e \
- |const bool consider_overlongs
-iTR |int |is_utf8_overlong_given_start_byte_ok|NN const U8 * const s \
- |const STRLEN len
-iTR |int |isFF_OVERLONG |NN const U8 * const s|const STRLEN len
-SR |char * |unexpected_non_continuation_text \
- |NN const U8 * const s \
- |STRLEN print_len \
- |const STRLEN non_cont_byte_pos \
- |const STRLEN expect_len
-#if 0 /* Not currently used, but may be needed in the future */
-S |void |warn_on_first_deprecated_use \
- |NN const char * const name \
- |NN const char * const alternative \
- |const bool use_locale \
- |NN const char * const file \
- |const unsigned line
-#endif
-S |UV |_to_utf8_case |const UV uv1 \
- |NULLOK const U8 *p \
- |NN U8* ustrp \
- |NN STRLEN *lenp \
- |NN SV *invlist \
- |NN const int * const invmap \
- |NULLOK const unsigned int * const * const aux_tables \
- |NULLOK const U8 * const aux_table_lengths \
- |NN const char * const normal
-S |UV |turkic_fc |NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
-S |UV |turkic_lc |NN const U8 * const p0|NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
-S |UV |turkic_uc |NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
-#endif
-Cp |UV |_to_utf8_lower_flags|NN const U8 *p|NULLOK const U8* e \
- |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
-Cp |UV |_to_utf8_upper_flags |NN const U8 *p|NULLOK const U8 *e \
- |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
-Cp |UV |_to_utf8_title_flags |NN const U8 *p|NULLOK const U8* e \
- |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
-Cp |UV |_to_utf8_fold_flags|NN const U8 *p|NULLOK const U8 *e \
- |NN U8* ustrp|NULLOK STRLEN *lenp|U8 flags
-#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
-pT |bool |translate_substr_offsets|STRLEN curlen|IV pos1_iv \
- |bool pos1_is_uv|IV len_iv \
- |bool len_is_uv|NN STRLEN *posp \
- |NN STRLEN *lenp
-#endif
-#if defined(UNLINK_ALL_VERSIONS)
-Ap |I32 |unlnk |NN const char* f
-#endif
-AbpdD |SSize_t|unpack_str |NN const char *pat|NN const char *patend|NN const char *s \
- |NULLOK const char *strbeg|NN const char *strend|NULLOK char **new_s \
- |I32 ocnt|U32 flags
-Apd |SSize_t|unpackstring |NN const char *pat|NN const char *patend|NN const char *s \
- |NN const char *strend|U32 flags
-Ap |void |unsharepvn |NULLOK const char* sv|I32 len|U32 hash
-: Used in gv.c, hv.c
-p |void |unshare_hek |NULLOK HEK* hek
-: Used in perly.y
-p |void |utilize |int aver|I32 floor|NULLOK OP* version|NN OP* idop|NULLOK OP* arg
-Cp |void |_force_out_malformed_utf8_message \
- |NN const U8 *const p|NN const U8 * const e|const U32 flags \
- |const bool die_here
-EXp |U8* |utf16_to_utf8 |NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen
-EXp |U8* |utf16_to_utf8_reversed|NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen
-AdpR |STRLEN |utf8_length |NN const U8* s|NN const U8 *e
-AipdR |IV |utf8_distance |NN const U8 *a|NN const U8 *b
-AipdRT |U8* |utf8_hop |NN const U8 *s|SSize_t off
-AipdRT |U8* |utf8_hop_back|NN const U8 *s|SSize_t off|NN const U8 *start
-AipdRT |U8* |utf8_hop_forward|NN const U8 *s|SSize_t off|NN const U8 *end
-AipdRT |U8* |utf8_hop_safe |NN const U8 *s|SSize_t off|NN const U8 *start|NN const U8 *end
-Apxd |U8* |utf8_to_bytes |NN U8 *s|NN STRLEN *lenp
+ERS |SV* |make_exactf_invlist |NN RExC_state_t *pRExC_state \
+ |NN regnode *node
+ES |regnode_offset|reg |NN RExC_state_t *pRExC_state \
+ |I32 paren|NN I32 *flagp|U32 depth
+ES |regnode_offset|regnode_guts|NN RExC_state_t *pRExC_state \
+ |const U8 op \
+ |const STRLEN extra_len \
+ |NN const char* const name
+ES |void |change_engine_size|NN RExC_state_t *pRExC_state|const Ptrdiff_t size
+ES |regnode_offset|reganode|NN RExC_state_t *pRExC_state|U8 op \
+ |U32 arg
+ES |regnode_offset|regpnode|NN RExC_state_t *pRExC_state|U8 op \
+ |NN SV * arg
+ES |regnode_offset|reg2Lanode|NN RExC_state_t *pRExC_state \
+ |const U8 op \
+ |const U32 arg1 \
+ |const I32 arg2
+ES |regnode_offset|regatom |NN RExC_state_t *pRExC_state \
+ |NN I32 *flagp|U32 depth
+ES |regnode_offset|regbranch |NN RExC_state_t *pRExC_state \
+ |NN I32 *flagp|I32 first|U32 depth
+ES |void |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \
+ |NN regnode* const node \
+ |NULLOK SV* const cp_list \
+ |NULLOK SV* const runtime_defns \
+ |NULLOK SV* const only_utf8_locale_list
+ES |void |output_posix_warnings \
+ |NN RExC_state_t *pRExC_state \
+ |NN AV* posix_warnings
+EiT |Size_t |find_first_differing_byte_pos|NN const U8 * s1|NN const U8 * s2| const Size_t max
+ES |AV* |add_multi_match|NULLOK AV* multi_char_matches \
+ |NN SV* multi_string \
+ |const STRLEN cp_count
+ES |regnode_offset|regclass|NN RExC_state_t *pRExC_state \
+ |NN I32 *flagp|U32 depth|const bool stop_at_1 \
+ |bool allow_multi_fold \
+ |const bool silence_non_portable \
+ |const bool strict \
+ |bool optimizable \
+ |NULLOK SV** ret_invlist
+ES |SV * |parse_uniprop_string|NN const char * const name \
+ |Size_t name_len \
+ |const bool is_utf8 \
+ |const bool to_fold \
+ |const bool runtime \
+ |const bool deferrable \
+ |NULLOK AV ** strings \
+ |NN bool * user_defined_ptr \
+ |NN SV * msg \
+ |const STRLEN level
+ES |SV * |handle_user_defined_property|NN const char * name \
+ |const STRLEN name_len \
+ |const bool is_utf8 \
+ |const bool to_fold \
+ |const bool runtime \
+ |const bool deferrable \
+ |NN SV* contents \
+ |NN bool *user_defined_ptr \
+ |NN SV * msg \
+ |const STRLEN level
+ERS |REGEXP*|compile_wildcard|NN const char * subpattern|const STRLEN len\
+ |const bool ignore_case
+ES |I32 |execute_wildcard|NN REGEXP * const prog|NN char* stringarg \
+ |NN char* strend|NN char* strbeg \
+ |SSize_t minend |NN SV* screamer|U32 nosave
+ES |bool |handle_names_wildcard \
+ |NN const char * wname \
+ |const STRLEN wname_len \
+ |NN SV ** prop_definition \
+ |NN AV ** strings
+ES |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
+ |NN SV** invlist
+ES |regnode_offset|handle_named_backref|NN RExC_state_t *pRExC_state \
+ |NN I32 *flagp \
+ |NN char * parse_start \
+ |char ch
+ESTR |unsigned int|regex_set_precedence|const U8 my_operator
+ES |regnode_offset|handle_regex_sets|NN RExC_state_t *pRExC_state \
+ |NULLOK SV ** return_invlist \
+ |NN I32 *flagp|U32 depth \
+ |NN char * const oregcomp_parse
+ES |void |set_regex_pv |NN RExC_state_t *pRExC_state|NN REGEXP *Rx
+# if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
+ES |void |dump_regex_sets_structures \
+ |NN RExC_state_t *pRExC_state \
+ |NN AV * stack \
+ |const IV fence|NN AV * fence_stack
+# endif
+ES |void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state
+ES |regnode_offset|reg_node|NN RExC_state_t *pRExC_state|U8 op
+ES |regnode_offset|regpiece|NN RExC_state_t *pRExC_state \
+ |NN I32 *flagp|U32 depth
+ES |bool |grok_bslash_N |NN RExC_state_t *pRExC_state \
+ |NULLOK regnode_offset* nodep \
+ |NULLOK UV *code_point_p \
+ |NULLOK int* cp_count \
+ |NN I32 *flagp \
+ |const bool strict \
+ |const U32 depth
+ES |void |reginsert |NN RExC_state_t *pRExC_state \
+ |const U8 op \
+ |const regnode_offset operand \
+ |const U32 depth
+ESR |bool |regtail |NN RExC_state_t * pRExC_state \
+ |NN const regnode_offset p \
+ |NN const regnode_offset val \
+ |const U32 depth
+ES |SV * |reg_scan_name |NN RExC_state_t *pRExC_state \
+ |U32 flags
+ES |U32 |join_exact |NN RExC_state_t *pRExC_state \
+ |NN regnode *scan|NN UV *min_subtract \
+ |NN bool *unfolded_multi_char \
+ |U32 flags|NULLOK regnode *val|U32 depth
+EST |U8 |compute_EXACTish|NN RExC_state_t *pRExC_state
+ES |void |nextchar |NN RExC_state_t *pRExC_state
+ES |void |skip_to_be_ignored_text|NN RExC_state_t *pRExC_state \
+ |NN char ** p \
+ |const bool force_to_xmod
+EiT |char * |reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p
+ES |void |scan_commit |NN const RExC_state_t *pRExC_state \
+ |NN struct scan_data_t *data \
+ |NN SSize_t *minlenp \
+ |int is_inf
+ES |void |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr
+ES |void |ssc_anything |NN regnode_ssc *ssc
+ESRT |int |ssc_is_anything|NN const regnode_ssc *ssc
+ES |void |ssc_init |NN const RExC_state_t *pRExC_state \
+ |NN regnode_ssc *ssc
+ESRT |int |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
+ |NN const regnode_ssc *ssc
+ES |void |ssc_and |NN const RExC_state_t *pRExC_state \
+ |NN regnode_ssc *ssc \
+ |NN const regnode_charclass *and_with
+ES |void |ssc_or |NN const RExC_state_t *pRExC_state \
+ |NN regnode_ssc *ssc \
+ |NN const regnode_charclass *or_with
+ES |SV* |get_ANYOF_cp_list_for_ssc \
+ |NN const RExC_state_t *pRExC_state \
+ |NN const regnode_charclass* const node
+ES |void |ssc_intersection|NN regnode_ssc *ssc \
+ |NN SV* const invlist|const bool invert_2nd
+ES |void |ssc_union |NN regnode_ssc *ssc \
+ |NN SV* const invlist|const bool invert_2nd
+ES |void |ssc_add_range |NN regnode_ssc *ssc \
+ |UV const start|UV const end
+ES |void |ssc_cp_and |NN regnode_ssc *ssc \
+ |UV const cp
+EST |void |ssc_clear_locale|NN regnode_ssc *ssc
+ETS |bool |is_ssc_worth_it|NN const RExC_state_t * pRExC_state \
+ |NN const regnode_ssc * ssc
+ES |void |ssc_finalize |NN RExC_state_t *pRExC_state \
+ |NN regnode_ssc *ssc
+ES |SSize_t|study_chunk |NN RExC_state_t *pRExC_state \
+ |NN regnode **scanp|NN SSize_t *minlenp \
+ |NN SSize_t *deltap|NN regnode *last \
+ |NULLOK struct scan_data_t *data \
+ |I32 stopparen|U32 recursed_depth \
+ |NULLOK regnode_ssc *and_withp \
+ |U32 flags|U32 depth|bool was_mutate_ok
+ES |void |rck_elide_nothing|NN regnode *node
+ESR |SV * |get_ANYOFM_contents|NN const regnode * n
+ESRT |U32 |add_data |NN RExC_state_t* const pRExC_state \
+ |NN const char* const s|const U32 n
+frS |void |re_croak |bool utf8|NN const char* pat|...
+ES |int |handle_possible_posix \
+ |NN RExC_state_t *pRExC_state \
+ |NN const char* const s \
+ |NULLOK char ** updated_parse_ptr \
+ |NULLOK AV** posix_warnings \
+ |const bool check_only
+ES |I32 |make_trie |NN RExC_state_t *pRExC_state \
+ |NN regnode *startbranch|NN regnode *first \
+ |NN regnode *last|NN regnode *tail \
+ |U32 word_count|U32 flags|U32 depth
+ES |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
+ |NN regnode *source|U32 depth
+ETSR |int |edit_distance |NN const UV *src \
+ |NN const UV *tgt \
+ |const STRLEN x \
+ |const STRLEN y \
+ |const SSize_t maxDistance
+# ifdef DEBUGGING
+EFp |int |re_indentf |NN const char *fmt|U32 depth|...
+ES |void |regdump_intflags|NULLOK const char *lead| const U32 flags
+ES |void |regdump_extflags|NULLOK const char *lead| const U32 flags
+ES |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
+ |NN const regnode *node \
+ |NULLOK const regnode *last \
+ |NULLOK const regnode *plast \
+ |NN SV* sv|I32 indent|U32 depth
+ES |void |put_code_point |NN SV* sv|UV c
+ES |bool |put_charclass_bitmap_innards|NN SV* sv \
+ |NULLOK char* bitmap \
+ |NULLOK SV* nonbitmap_invlist \
+ |NULLOK SV* only_utf8_locale_invlist\
+ |NULLOK const regnode * const node \
+ |const U8 flags \
+ |const bool force_as_is_display
+ES |SV* |put_charclass_bitmap_innards_common \
+ |NN SV* invlist \
+ |NULLOK SV* posixes \
+ |NULLOK SV* only_utf8 \
+ |NULLOK SV* not_utf8 \
+ |NULLOK SV* only_utf8_locale \
+ |const bool invert
+ES |void |put_charclass_bitmap_innards_invlist \
+ |NN SV *sv \
+ |NN SV* invlist
+ES |void |put_range |NN SV* sv|UV start|const UV end \
+ |const bool allow_literals
+ES |void |dump_trie |NN const struct _reg_trie_data *trie\
+ |NULLOK HV* widecharmap|NN AV *revcharmap\
+ |U32 depth
+ES |void |dump_trie_interim_list|NN const struct _reg_trie_data *trie\
+ |NULLOK HV* widecharmap|NN AV *revcharmap\
+ |U32 next_alloc|U32 depth
+ES |void |dump_trie_interim_table|NN const struct _reg_trie_data *trie\
+ |NULLOK HV* widecharmap|NN AV *revcharmap\
+ |U32 next_alloc|U32 depth
+ESR |bool |regtail_study |NN RExC_state_t *pRExC_state \
+ |NN regnode_offset p|NN const regnode_offset val|U32 depth
+# endif
+# ifndef PERL_EXT_RE_BUILD
+EiRT |UV* |_invlist_array_init |NN SV* const invlist|const bool will_have_0
+EiRT |UV |invlist_max |NN SV* const invlist
+EiRT |IV* |get_invlist_previous_index_addr|NN SV* invlist
+EiT |void |invlist_set_previous_index|NN SV* const invlist|const IV index
+EiRT |IV |invlist_previous_index|NN SV* const invlist
+EiT |void |invlist_trim |NN SV* invlist
+Ei |void |invlist_clear |NN SV* invlist
+ES |void |_append_range_to_invlist |NN SV* const invlist|const UV start|const UV end
+ES |void |invlist_replace_list_destroys_src|NN SV *dest|NN SV *src
+S |void |initialize_invlist_guts|NN SV* invlist|const Size_t initial_size
+# endif
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C)
+EiR |SV* |add_cp_to_invlist |NULLOK SV* invlist|const UV cp
+Ei |void |invlist_extend |NN SV* const invlist|const UV len
+Ei |void |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
+EiRT |UV |invlist_highest|NN SV* const invlist
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_UTF8_C)
+m |void |_invlist_intersection |NN SV* const a|NN SV* const b|NN SV** i
+EXp |void |_invlist_intersection_maybe_complement_2nd \
+ |NULLOK SV* const a|NN SV* const b \
+ |const bool complement_b|NN SV** i
+Cm |void |_invlist_union |NULLOK SV* const a|NN SV* const b|NN SV** output
+EXp |void |_invlist_union_maybe_complement_2nd \
+ |NULLOK SV* const a|NN SV* const b \
+ |const bool complement_b|NN SV** output
+m |void |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
+EXp |void |_invlist_invert|NN SV* const invlist
+EXpR |SV* |_new_invlist |IV initial_size
+EXpR |SV* |_add_range_to_invlist |NULLOK SV* invlist|UV start|UV end
+EXpR |SV* |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C)
+EpRX |bool |grok_bslash_x |NN char** s \
+ |NN const char* const send \
+ |NN UV* uv \
+ |NN const char** message \
+ |NULLOK U32 * packed_warn \
+ |const bool strict \
+ |const bool allow_UV_MAX \
+ |const bool utf8
+EpRX |bool |grok_bslash_c |const char source \
+ |NN U8 * result \
+ |NN const char** message \
+ |NULLOK U32 * packed_warn
+EpRX |bool |grok_bslash_o |NN char** s \
+ |NN const char* const send \
+ |NN UV* uv \
+ |NN const char** message \
+ |NULLOK U32 * packed_warn \
+ |const bool strict \
+ |const bool allow_UV_MAX \
+ |const bool utf8
+EpRX |const char *|form_alien_digit_msg|const U8 which \
+ |const STRLEN valids_len \
+ |NN const char * const first_bad\
+ |NN const char * const send \
+ |const bool UTF \
+ |const bool braced
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
+EpRX |const char *|form_cp_too_large_msg|const U8 which \
+ |NULLOK const char * string \
+ |const Size_t len \
+ |const UV cp
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C)
+EXp |void |_invlist_dump |NN PerlIO *file|I32 level \
+ |NN const char* const indent \
+ |NN SV* const invlist
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
+EiRT |STRLEN*|get_invlist_iter_addr |NN SV* invlist
+EiT |void |invlist_iterinit|NN SV* invlist
+EiRT |bool |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
+EiT |void |invlist_iterfinish|NN SV* invlist
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
+EXpR |SV* |_new_invlist_C_array|NN const UV* const list
+EXp |bool |_invlistEQ |NN SV* const a|NN SV* const b|const bool complement_b
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+EiT |const char *|get_regex_charset_name|const U32 flags|NN STRLEN* const lenp
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) \
+ || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C) \
+ || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C) \
+ || defined(PERL_IN_DOOP_C)
+EiRT |UV* |invlist_array |NN SV* const invlist
+EiRT |bool |is_invlist |NULLOK SV* const invlist
+EiRT |bool* |get_invlist_offset_addr|NN SV* invlist
+EiRT |UV |_invlist_len |NN SV* const invlist
+EiRT |bool |_invlist_contains_cp|NN SV* const invlist|const UV cp
+EXpRT |SSize_t|_invlist_search |NN SV* const invlist|const UV cp
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
+# ifndef PERL_EXT_RE_BUILD
+Ep |SV* |get_regclass_nonbitmap_data \
+ |NULLOK const regexp *prog \
+ |NN const struct regnode *node \
+ |bool doinit \
+ |NULLOK SV **listsvp \
+ |NULLOK SV **lonly_utf8_locale \
+ |NULLOK SV **output_invlist
+# else
+Ep |SV* |get_re_gclass_nonbitmap_data \
+ |NULLOK const regexp *prog \
+ |NN const struct regnode *node \
+ |bool doinit \
+ |NULLOK SV **listsvp \
+ |NULLOK SV **lonly_utf8_locale \
+ |NULLOK SV **output_invlist
+#endif
+Ep |void |regprop |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo \
+ |NULLOK const RExC_state_t *pRExC_state
+Efp |int |re_printf |NN const char *fmt|...
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
+ERp |bool |is_grapheme |NN const U8 * strbeg|NN const U8 * s|NN const U8 *strend|const UV cp
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+EXTp |UV |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
+EpX |SV* |invlist_clone |NN SV* const invlist|NULLOK SV* newlist
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
+EiRT |bool |regcurly |NN const char *s
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+ERS |bool |isFOO_utf8_lc |const U8 classnum|NN const U8* character|NN const U8* e
+ERTS |U8 * |find_next_masked|NN U8 * s \
+ |NN const U8 * send \
+ |const U8 byte|const U8 mask
+ERTS |U8 *|find_span_end |NN U8* s|NN const U8 * send|const U8 span_byte
+ERTS |U8 *|find_span_end_mask|NN U8 * s|NN const U8 * send \
+ |const U8 span_byte|const U8 mask
+ERS |SSize_t|regmatch |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
+WERS |I32 |regrepeat |NN regexp *prog|NN char **startposp \
+ |NN const regnode *p \
+ |NN char *loceol \
+ |NN regmatch_info *const reginfo \
+ |I32 max
+ERS |bool |regtry |NN regmatch_info *reginfo|NN char **startposp
+ERS |bool |reginclass |NULLOK regexp * const prog \
+ |NN const regnode * const n \
+ |NN const U8 * const p \
+ |NN const U8 * const p_end \
+ |bool const utf8_target
+WES |CHECKPOINT|regcppush |NN const regexp *rex|I32 parenfloor\
+ |U32 maxopenparen
+WES |void |regcppop |NN regexp *rex|NN U32 *maxopenparen_p
+WES |void |regcp_restore |NN regexp *rex|I32 ix|NN U32 *maxopenparen_p
+ERST |U8* |reghop3 |NN U8 *s|SSize_t off|NN const U8 *lim
+ERST |U8* |reghop4 |NN U8 *s|SSize_t off|NN const U8 *llim \
+ |NN const U8 *rlim
+ERST |U8* |reghopmaybe3 |NN U8 *s|SSize_t off|NN const U8 * const lim
+ERS |char* |find_byclass |NN regexp * prog|NN const regnode *c \
+ |NN char *s|NN const char *strend \
+ |NULLOK regmatch_info *reginfo
+ES |void |to_utf8_substr |NN regexp * prog
+ES |bool |to_byte_substr |NN regexp * prog
+ERST |I32 |reg_check_named_buff_matched |NN const regexp *rex \
+ |NN const regnode *scan
+ESR |bool |isGCB |const GCB_enum before \
+ |const GCB_enum after \
+ |NN const U8 * const strbeg \
+ |NN const U8 * const curpos \
+ |const bool utf8_target
+ESR |GCB_enum|backup_one_GCB|NN const U8 * const strbeg \
+ |NN U8 ** curpos \
+ |const bool utf8_target
+ESR |bool |isLB |LB_enum before \
+ |LB_enum after \
+ |NN const U8 * const strbeg \
+ |NN const U8 * const curpos \
+ |NN const U8 * const strend \
+ |const bool utf8_target
+ESR |LB_enum|advance_one_LB |NN U8 ** curpos \
+ |NN const U8 * const strend \
+ |const bool utf8_target
+ESR |LB_enum|backup_one_LB |NN const U8 * const strbeg \
+ |NN U8 ** curpos \
+ |const bool utf8_target
+ESR |bool |isSB |SB_enum before \
+ |SB_enum after \
+ |NN const U8 * const strbeg \
+ |NN const U8 * const curpos \
+ |NN const U8 * const strend \
+ |const bool utf8_target
+ESR |SB_enum|advance_one_SB |NN U8 ** curpos \
+ |NN const U8 * const strend \
+ |const bool utf8_target
+ESR |SB_enum|backup_one_SB |NN const U8 * const strbeg \
+ |NN U8 ** curpos \
+ |const bool utf8_target
+ESR |bool |isWB |WB_enum previous \
+ |WB_enum before \
+ |WB_enum after \
+ |NN const U8 * const strbeg \
+ |NN const U8 * const curpos \
+ |NN const U8 * const strend \
+ |const bool utf8_target
+ESR |WB_enum|advance_one_WB |NN U8 ** curpos \
+ |NN const U8 * const strend \
+ |const bool utf8_target \
+ |const bool skip_Extend_Format
+ESR |WB_enum|backup_one_WB |NN WB_enum * previous \
+ |NN const U8 * const strbeg \
+ |NN U8 ** curpos \
+ |const bool utf8_target
+EiT |I32 |foldEQ_latin1_s2_folded|NN const char* a|NN const char* b|I32 len
+# ifdef DEBUGGING
+ES |void |dump_exec_pos |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
+ |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8|const U32 depth
+ES |void |debug_start_match|NN const REGEXP *prog|const bool do_utf8\
+ |NN const char *start|NN const char *end\
+ |NN const char *blurb
+
+EFp |int |re_exec_indentf|NN const char *fmt|U32 depth|...
+# endif
+#endif
+#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+EXRp |bool |isFOO_lc |const U8 classnum|const U8 character
+#endif
+
+Ap |void |taint_env
+Ap |void |taint_proper |NULLOK const char* f|NN const char *const s
+EXp |char * |_byte_dump_string \
+ |NN const U8 * const start \
+ |const STRLEN len \
+ |const bool format
+
+#if defined(PERL_IN_UTF8_C)
+iTR |int |does_utf8_overflow|NN const U8 * const s \
+ |NN const U8 * e \
+ |const bool consider_overlongs
+iTR |int |is_utf8_overlong_given_start_byte_ok|NN const U8 * const s \
+ |const STRLEN len
+iTR |int |isFF_OVERLONG |NN const U8 * const s|const STRLEN len
+SR |char * |unexpected_non_continuation_text \
+ |NN const U8 * const s \
+ |STRLEN print_len \
+ |const STRLEN non_cont_byte_pos \
+ |const STRLEN expect_len
+#if 0 /* Not currently used, but may be needed in the future */
+S |void |warn_on_first_deprecated_use \
+ |NN const char * const name \
+ |NN const char * const alternative \
+ |const bool use_locale \
+ |NN const char * const file \
+ |const unsigned line
+#endif
+S |UV |_to_utf8_case |const UV uv1 \
+ |NULLOK const U8 *p \
+ |NN U8* ustrp \
+ |NN STRLEN *lenp \
+ |NN SV *invlist \
+ |NN const I32 * const invmap \
+ |NULLOK const U32 * const * const aux_tables \
+ |NULLOK const U8 * const aux_table_lengths \
+ |NN const char * const normal
+S |UV |turkic_fc |NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
+S |UV |turkic_lc |NN const U8 * const p0|NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
+S |UV |turkic_uc |NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
+#endif
+Cp |UV |_to_utf8_lower_flags|NN const U8 *p|NULLOK const U8* e \
+ |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
+Cp |UV |_to_utf8_upper_flags |NN const U8 *p|NULLOK const U8 *e \
+ |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
+Cp |UV |_to_utf8_title_flags |NN const U8 *p|NULLOK const U8* e \
+ |NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
+Cp |UV |_to_utf8_fold_flags|NN const U8 *p|NULLOK const U8 *e \
+ |NN U8* ustrp|NULLOK STRLEN *lenp|U8 flags
+#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
+pT |bool |translate_substr_offsets|STRLEN curlen|IV pos1_iv \
+ |bool pos1_is_uv|IV len_iv \
+ |bool len_is_uv|NN STRLEN *posp \
+ |NN STRLEN *lenp
+#endif
+#if defined(UNLINK_ALL_VERSIONS)
+Cp |I32 |unlnk |NN const char* f
+#endif
+AbpdD |SSize_t|unpack_str |NN const char *pat|NN const char *patend|NN const char *s \
+ |NULLOK const char *strbeg|NN const char *strend|NULLOK char **new_s \
+ |I32 ocnt|U32 flags
+Apd |SSize_t|unpackstring |NN const char *pat|NN const char *patend|NN const char *s \
+ |NN const char *strend|U32 flags
+Ap |void |unsharepvn |NULLOK const char* sv|I32 len|U32 hash
+: Used in gv.c, hv.c
+p |void |unshare_hek |NULLOK HEK* hek
+: Used in perly.y
+p |void |utilize |int aver|I32 floor|NULLOK OP* version|NN OP* idop|NULLOK OP* arg
+Cp |void |_force_out_malformed_utf8_message \
+ |NN const U8 *const p|NN const U8 * const e|const U32 flags \
+ |const bool die_here
+EXp |U8* |utf16_to_utf8 |NN U8* p|NN U8 *d|Size_t bytelen|NN Size_t *newlen
+EXp |U8* |utf16_to_utf8_reversed|NN U8* p|NN U8 *d|Size_t bytelen|NN Size_t *newlen
+AdpR |STRLEN |utf8_length |NN const U8* s|NN const U8 *e
+AipdR |IV |utf8_distance |NN const U8 *a|NN const U8 *b
+AipdRT |U8* |utf8_hop |NN const U8 *s|SSize_t off
+AipdRT |U8* |utf8_hop_back|NN const U8 *s|SSize_t off|NN const U8 *start
+AipdRT |U8* |utf8_hop_forward|NN const U8 *s|SSize_t off|NN const U8 *end
+AipdRT |U8* |utf8_hop_safe |NN const U8 *s|SSize_t off|NN const U8 *start|NN const U8 *end
+Apxd |U8* |utf8_to_bytes |NN U8 *s|NN STRLEN *lenp
Apd |int |bytes_cmp_utf8 |NN const U8 *b|STRLEN blen|NN const U8 *u \
|STRLEN ulen
AMxdp |U8* |bytes_from_utf8|NN const U8 *s|NN STRLEN *lenp|NN bool *is_utf8p
-AxTp |U8* |bytes_from_utf8_loc|NN const U8 *s \
+CxTdp |U8* |bytes_from_utf8_loc|NN const U8 *s \
|NN STRLEN *lenp \
|NN bool *is_utf8p \
|NULLOK const U8 ** first_unconverted
Apxd |U8* |bytes_to_utf8 |NN const U8 *s|NN STRLEN *lenp
-ApdD |UV |utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen
+ApdDb |UV |utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen
CbpdD |UV |utf8_to_uvuni |NN const U8 *s|NULLOK STRLEN *retlen
CbpD |UV |valid_utf8_to_uvuni |NN const U8 *s|NULLOK STRLEN *retlen
AMpd |UV |utf8_to_uvchr_buf |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
|NULLOK STRLEN *retlen \
|const U32 flags \
|NULLOK U32 * errors
-AxTdip |UV |utf8n_to_uvchr_msgs|NN const U8 *s \
+ATdip |UV |utf8n_to_uvchr_msgs|NN const U8 *s \
|STRLEN curlen \
|NULLOK STRLEN *retlen \
|const U32 flags \
|NULLOK U32 * errors \
|NULLOK AV ** msgs
CipTRd |UV |valid_utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen
-Cdp |UV |utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
+CdbDp |UV |utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
Adm |U8* |uvchr_to_utf8 |NN U8 *d|UV uv
Cp |U8* |uvuni_to_utf8 |NN U8 *d|UV uv
Adm |U8* |uvchr_to_utf8_flags |NN U8 *d|UV uv|UV flags
-Admx |U8* |uvchr_to_utf8_flags_msgs|NN U8 *d|UV uv|UV flags|NULLOK HV ** msgs
+Adm |U8* |uvchr_to_utf8_flags_msgs|NN U8 *d|UV uv|UV flags|NULLOK HV ** msgs
CMpd |U8* |uvoffuni_to_utf8_flags |NN U8 *d|UV uv|const UV flags
Cp |U8* |uvoffuni_to_utf8_flags_msgs|NN U8 *d|UV uv|const UV flags|NULLOK HV** msgs
-Cdp |U8* |uvuni_to_utf8_flags |NN U8 *d|UV uv|UV flags
+CdpbD |U8* |uvuni_to_utf8_flags |NN U8 *d|UV uv|UV flags
Apd |char* |pv_uni_display |NN SV *dsv|NN const U8 *spv|STRLEN len|STRLEN pvlim|UV flags
ApdR |char* |sv_uni_display |NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags
EXpR |Size_t |_inverse_folds |const UV cp \
- |NN unsigned int * first_folds_to \
- |NN const unsigned int ** remaining_folds_to
+ |NN U32 * first_folds_to \
+ |NN const U32 ** remaining_folds_to
: Used by Data::Alias
EXp |void |vivify_defelem |NN SV* sv
: Used in pp.c
ATpa |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
ATpR |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
ATp |Free_t |safesysfree |Malloc_t where
-AirTep |void |croak_memory_wrap
-#if defined(PERL_GLOBAL_STRUCT)
-Ap |struct perl_vars *|GetVars
-Ap |struct perl_vars*|init_global_struct
-Ap |void |free_global_struct|NN struct perl_vars *plvarsp
-#endif
+CrTp |void |croak_memory_wrap
Ap |int |runops_standard
Ap |int |runops_debug
Afpd |void |sv_catpvf_mg |NN SV *const sv|NN const char *const pat|...
Apd |char* |pv_escape |NULLOK SV *dsv|NN char const * const str\
|const STRLEN count|const STRLEN max\
|NULLOK STRLEN * const escaped\
- |const U32 flags
+ |const U32 flags
Apd |char* |pv_pretty |NN SV *dsv|NN char const * const str\
|const STRLEN count|const STRLEN max\
|NULLOK char const * const start_color\
|NULLOK char const * const end_color\
- |const U32 flags
+ |const U32 flags
Afp |void |dump_indent |I32 level|NN PerlIO *file|NN const char* pat|...
Ap |void |dump_vindent |I32 level|NN PerlIO *file|NN const char* pat \
|NULLOK va_list *args
|I32 maxnest|bool dumpops|STRLEN pvlim
Ap |void |magic_dump |NULLOK const MAGIC *mg
Ap |void |reginitcolors
-ApdRMb |char* |sv_2pv_nolen |NN SV* sv
-ApdRMb |char* |sv_2pvutf8_nolen|NN SV* sv
-ApdRMb |char* |sv_2pvbyte_nolen|NN SV* sv
-ApMdbR |char* |sv_pv |NN SV *sv
-ApMdbR |char* |sv_pvutf8 |NN SV *sv
-ApMdbR |char* |sv_pvbyte |NN SV *sv
+CpdRMb |char* |sv_2pv_nolen |NN SV* sv
+CpdRMb |char* |sv_2pvutf8_nolen|NN SV* sv
+CpdRMb |char* |sv_2pvbyte_nolen|NN SV* sv
+CpMdbR |char* |sv_pv |NN SV *sv
+CpMdbR |char* |sv_pvutf8 |NN SV *sv
+CpMdbR |char* |sv_pvbyte |NN SV *sv
ApMdb |STRLEN |sv_utf8_upgrade|NN SV *sv
Amd |STRLEN |sv_utf8_upgrade_nomg|NN SV *sv
ApdMb |bool |sv_utf8_downgrade|NN SV *const sv|const bool fail_ok
ApR |void* |any_dup |NULLOK void* v|NN const PerlInterpreter* proto_perl
ApR |HE* |he_dup |NULLOK const HE* e|bool shared|NN CLONE_PARAMS* param
ApR |HEK* |hek_dup |NULLOK HEK* e|NN CLONE_PARAMS* param
-Ap |void |re_dup_guts |NN const REGEXP *sstr|NN REGEXP *dstr \
+Adp |void |re_dup_guts |NN const REGEXP *sstr|NN REGEXP *dstr \
|NN CLONE_PARAMS* param
Ap |PerlIO*|fp_dup |NULLOK PerlIO *const fp|const char type|NN CLONE_PARAMS *const param
ApR |DIR* |dirp_dup |NULLOK DIR *const dp|NN CLONE_PARAMS *const param
Adop |void |custom_op_register |NN Perl_ppaddr_t ppaddr \
|NN const XOP *xop
-Adp |void |sv_nosharing |NULLOK SV *sv
-AdpbD |void |sv_nolocking |NULLOK SV *sv
-Adp |bool |sv_destroyable |NULLOK SV *sv
-AdpbD |void |sv_nounlocking |NULLOK SV *sv
-Adp |int |nothreadhook
-p |void |init_constants
-
-#if defined(PERL_IN_DOOP_C)
-SR |Size_t |do_trans_simple |NN SV * const sv
-SR |Size_t |do_trans_count |NN SV * const sv
-SR |Size_t |do_trans_complex |NN SV * const sv
-SR |Size_t |do_trans_simple_utf8 |NN SV * const sv
-SR |Size_t |do_trans_count_utf8 |NN SV * const sv
-SR |Size_t |do_trans_complex_utf8 |NN SV * const sv
-#endif
-
-#if defined(PERL_IN_GV_C)
-S |void |gv_init_svtype |NN GV *gv|const svtype sv_type
-S |void |gv_magicalize_isa |NN GV *gv
-S |bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \
- |NN const char **name|NN STRLEN *len \
- |NN const char *nambeg|STRLEN full_len \
- |const U32 is_utf8|const I32 add
-S |bool|find_default_stash|NN HV **stash|NN const char *name \
- |STRLEN len|const U32 is_utf8|const I32 add \
- |const svtype sv_type
-S |bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \
- |STRLEN len \
- |const svtype sv_type
-S |void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type
-S |bool|gv_is_in_main|NN const char *name|STRLEN len \
- |const U32 is_utf8
-S |void |require_tie_mod|NN GV *gv|NN const char varname \
- |NN const char * name|STRLEN len \
- |const U32 flags
-#endif
-
-#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
-po |SV* |hfree_next_entry |NN HV *hv|NN STRLEN *indexp
-#endif
-
-#if defined(PERL_IN_HV_C)
-S |void |hsplit |NN HV *hv|STRLEN const oldsize|STRLEN newsize
-S |void |hv_free_entries|NN HV *hv
-S |SV* |hv_free_ent_ret|NN HV *hv|NN HE *entry
-SR |HE* |new_he
-SaTR |HEK* |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
-ST |void |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
-S |void |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
-SR |HEK* |share_hek_flags|NN const char *str|STRLEN len|U32 hash|int flags
-rS |void |hv_notallowed |int flags|NN const char *key|I32 klen|NN const char *msg
-iT |U32|ptr_hash|PTRV u
-S |struct xpvhv_aux*|hv_auxinit|NN HV *hv
-ST |struct xpvhv_aux*|hv_auxinit_internal|NN struct xpvhv_aux *iter
-Sx |SV* |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
- |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \
- |U32 hash
-Sx |void |clear_placeholders |NN HV *hv|U32 items
-#endif
-
-#if defined(PERL_IN_MG_C)
-S |void |save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags
-S |int |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth
-S |SV* |magic_methcall1|NN SV *sv|NN const MAGIC *mg \
- |NN SV *meth|U32 flags \
- |int n|NULLOK SV *val
-S |void |restore_magic |NULLOK const void *p
-S |void |unwind_handler_stack|NULLOK const void *p
-S |void |fixup_errno_string|NN SV* sv
-
-#endif
-
-#if defined(PERL_IN_OP_C)
-SRT |bool |is_handle_constructor|NN const OP *o|I32 numargs
-SR |I32 |assignment_type|NULLOK const OP *o
-S |void |forget_pmop |NN PMOP *const o
-S |void |find_and_forget_pmops |NN OP *o
-S |void |cop_free |NN COP *cop
-S |OP* |modkids |NULLOK OP *o|I32 type
-S |OP* |scalarboolean |NN OP *o
-SR |OP* |search_const |NN OP *o
-SR |OP* |new_logop |I32 type|I32 flags|NN OP **firstp|NN OP **otherp
-S |void |simplify_sort |NN OP *o
-SRT |bool |scalar_mod_type|NULLOK const OP *o|I32 type
-S |OP * |my_kid |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
-S |OP * |dup_attrlist |NN OP *o
-S |void |apply_attrs |NN HV *stash|NN SV *target|NULLOK OP *attrs
-S |void |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
-S |void |bad_type_pv |I32 n|NN const char *t|NN const OP *o|NN const OP *kid
-S |void |bad_type_gv |I32 n|NN GV *gv|NN const OP *kid|NN const char *t
-S |void |no_bareword_allowed|NN OP *o
-SR |OP* |no_fh_allowed|NN OP *o
-SR |OP* |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
-S |OP* |too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags
-S |bool |looks_like_bool|NN const OP* o
-S |OP* |newGIVWHENOP |NULLOK OP* cond|NN OP *block \
- |I32 enter_opcode|I32 leave_opcode \
- |PADOFFSET entertarg
-S |OP* |ref_array_or_hash|NULLOK OP* cond
-S |bool |process_special_blocks |I32 floor \
- |NN const char *const fullname\
- |NN GV *const gv|NN CV *const cv
-S |void |clear_special_blocks |NN const char *const fullname\
- |NN GV *const gv|NN CV *const cv
-#endif
-XpR |void* |Slab_Alloc |size_t sz
-Xp |void |Slab_Free |NN void *op
-#if defined(PERL_DEBUG_READONLY_OPS)
-# if defined(PERL_CORE)
-pe |void |Slab_to_ro |NN OPSLAB *slab
-pe |void |Slab_to_rw |NN OPSLAB *const slab
-# endif
-: Used in OpREFCNT_inc() in sv.c
-poex |OP * |op_refcnt_inc |NULLOK OP *o
-: FIXME - can be static.
-poex |PADOFFSET |op_refcnt_dec |NN OP *o
-#endif
-
-#if defined(PERL_IN_PERL_C)
-S |void |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp
-S |void |forbid_setid |const char flag|const bool suidscript
-S |void |incpush |NN const char *const dir|STRLEN len \
- |U32 flags
-S |SV* |mayberelocate |NN const char *const dir|STRLEN len \
- |U32 flags
-S |void |incpush_use_sep|NN const char *p|STRLEN len|U32 flags
-S |void |init_interp
-S |void |init_ids
-S |void |init_main_stash
-S |void |init_perllib
-S |void |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env
-S |void |init_predump_symbols
-rS |void |my_exit_jump
-S |void |nuke_stacks
-S |PerlIO *|open_script |NN const char *scriptname|bool dosearch \
- |NN bool *suidscript
-Sr |void |usage
-#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
-So |void |validate_suid |NN PerlIO *rsfp
-#endif
-Sr |void |minus_v
-
-S |void* |parse_body |NULLOK char **env|XSINIT_t xsinit
-rS |void |run_body |I32 oldscope
-# ifndef PERL_IS_MINIPERL
-S |SV * |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
-# endif
-#endif
-
-#if defined(PERL_IN_PP_C)
-S |size_t |do_chomp |NN SV *retval|NN SV *sv|bool chomping
-S |OP* |do_delete_local
-SR |SV* |refto |NN SV* sv
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
-: Used in pp_hot.c
-pReo |GV* |softref2xv |NN SV *const sv|NN const char *const what \
- |const svtype type|NN SV ***spp
-iTR |bool |lossless_NV_to_IV|const NV nv|NN IV * ivp
-#endif
-
-#if defined(PERL_IN_PP_PACK_C)
-S |SSize_t|unpack_rec |NN struct tempsym* symptr|NN const char *s \
- |NN const char *strbeg|NN const char *strend|NULLOK const char **new_s
-S |SV ** |pack_rec |NN SV *cat|NN struct tempsym* symptr|NN SV **beglist|NN SV **endlist
-S |SV* |mul128 |NN SV *sv|U8 m
-S |SSize_t|measure_struct |NN struct tempsym* symptr
-S |bool |next_symbol |NN struct tempsym* symptr
-SR |SV* |is_an_int |NN const char *s|STRLEN l
-S |int |div128 |NN SV *pnum|NN bool *done
-S |const char *|group_end |NN const char *patptr|NN const char *patend \
- |char ender
-SR |const char *|get_num |NN const char *patptr|NN SSize_t *lenptr
-TS |bool |need_utf8 |NN const char *pat|NN const char *patend
-TS |char |first_symbol |NN const char *pat|NN const char *patend
-SR |char * |sv_exp_grow |NN SV *sv|STRLEN needed
-STR |char * |my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \
- |const bool needs_swap
-#endif
-
-#if defined(PERL_IN_PP_CTL_C)
-SdR |OP* |docatch |Perl_ppaddr_t firstpp
-SR |OP* |dofindlabel |NN OP *o|NN const char *label|STRLEN len \
- |U32 flags|NN OP **opstack|NN OP **oplimit
-S |MAGIC *|doparseform |NN SV *sv
-STR |bool |num_overflow |NV value|I32 fldsize|I32 frcsize
-SR |I32 |dopoptoeval |I32 startingblock
-SR |I32 |dopoptogivenfor|I32 startingblock
-SR |I32 |dopoptolabel |NN const char *label|STRLEN len|U32 flags
-SR |I32 |dopoptoloop |I32 startingblock
-SR |I32 |dopoptosub_at |NN const PERL_CONTEXT* cxstk|I32 startingblock
-SR |I32 |dopoptowhen |I32 startingblock
-S |void |save_lines |NULLOK AV *array|NN SV *sv
-S |bool |doeval_compile |U8 gimme \
- |NULLOK CV* outside|U32 seq|NULLOK HV* hh
-SR |PerlIO *|check_type_and_open|NN SV *name
-#ifndef PERL_DISABLE_PMC
-SR |PerlIO *|doopen_pm |NN SV *name
-#endif
-iRT |bool |path_is_searchable|NN const char *name
-SR |I32 |run_user_filter|int idx|NN SV *buf_sv|int maxlen
-SR |PMOP* |make_matcher |NN REGEXP* re
-SR |bool |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
-S |void |destroy_matcher|NN PMOP* matcher
-S |OP* |do_smartmatch |NULLOK HV* seen_this \
- |NULLOK HV* seen_other|const bool copied
-#endif
+Adp |void |sv_nosharing |NULLOK SV *sv
+AdpbD |void |sv_nolocking |NULLOK SV *sv
+Adp |bool |sv_destroyable |NULLOK SV *sv
+AdpbD |void |sv_nounlocking |NULLOK SV *sv
+Adp |int |nothreadhook
+p |void |init_constants
-#if defined(PERL_IN_PP_HOT_C)
-S |void |do_oddball |NN SV **oddkey|NN SV **firstkey
-i |HV* |opmethod_stash |NN SV* meth
+#if defined(PERL_IN_DOOP_C)
+SR |Size_t |do_trans_simple |NN SV * const sv|NN const OPtrans_map * const tbl
+SR |Size_t |do_trans_count |NN SV * const sv|NN const OPtrans_map * const tbl
+SR |Size_t |do_trans_complex |NN SV * const sv|NN const OPtrans_map * const tbl
+SR |Size_t |do_trans_invmap |NN SV * const sv|NN AV * const map
+SR |Size_t |do_trans_count_invmap |NN SV * const sv|NN AV * const map
#endif
-#if defined(PERL_IN_PP_SORT_C)
-S |I32 |sv_ncmp |NN SV *const a|NN SV *const b
-S |I32 |sv_i_ncmp |NN SV *const a|NN SV *const b
-S |I32 |amagic_ncmp |NN SV *const a|NN SV *const b
-S |I32 |amagic_i_ncmp |NN SV *const a|NN SV *const b
-S |I32 |amagic_cmp |NN SV *const str1|NN SV *const str2
-# ifdef USE_LOCALE_COLLATE
-S |I32 |amagic_cmp_locale|NN SV *const str1|NN SV *const str2
-# endif
-S |I32 |sortcv |NN SV *const a|NN SV *const b
-S |I32 |sortcv_xsub |NN SV *const a|NN SV *const b
-S |I32 |sortcv_stacked |NN SV *const a|NN SV *const b
+#if defined(PERL_IN_GV_C)
+S |void |gv_init_svtype |NN GV *gv|const svtype sv_type
+S |void |gv_magicalize_isa |NN GV *gv
+S |bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \
+ |NN const char **name|NN STRLEN *len \
+ |NN const char *nambeg|STRLEN full_len \
+ |const U32 is_utf8|const I32 add
+S |bool|find_default_stash|NN HV **stash|NN const char *name \
+ |STRLEN len|const U32 is_utf8|const I32 add \
+ |const svtype sv_type
+S |bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \
+ |STRLEN len \
+ |const svtype sv_type
+S |void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type
+S |bool|gv_is_in_main|NN const char *name|STRLEN len \
+ |const U32 is_utf8
+S |void |require_tie_mod|NN GV *gv|NN const char varname \
+ |NN const char * name|STRLEN len \
+ |const U32 flags
#endif
-#if defined(PERL_IN_PP_SYS_C)
-S |OP* |doform |NN CV *cv|NN GV *gv|NULLOK OP *retop
-# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-SR |int |dooneliner |NN const char *cmd|NN const char *filename
-# endif
-S |SV * |space_join_names_mortal|NULLOK char *const *array
+#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
+po |SV* |hfree_next_entry |NN HV *hv|NN STRLEN *indexp
#endif
-p |OP * |tied_method|NN SV *methname|NN SV **sp \
- |NN SV *const sv|NN const MAGIC *const mg \
- |const U32 flags|U32 argc|...
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-Ep |void |regprop |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo \
- |NULLOK const RExC_state_t *pRExC_state
-Ep |int |re_printf |NN const char *fmt|...
-#endif
-#if defined(PERL_IN_REGCOMP_C)
-ES |regnode_offset|reg |NN RExC_state_t *pRExC_state \
- |I32 paren|NN I32 *flagp|U32 depth
-ES |regnode_offset|regnode_guts|NN RExC_state_t *pRExC_state \
- |const U8 op \
- |const STRLEN extra_len \
- |NN const char* const name
-ES |void |change_engine_size|NN RExC_state_t *pRExC_state|const Ptrdiff_t size
-ES |regnode_offset|reganode|NN RExC_state_t *pRExC_state|U8 op \
- |U32 arg
-ES |regnode_offset|reg2Lanode|NN RExC_state_t *pRExC_state \
- |const U8 op \
- |const U32 arg1 \
- |const I32 arg2
-ES |regnode_offset|regatom |NN RExC_state_t *pRExC_state \
- |NN I32 *flagp|U32 depth
-ES |regnode_offset|regbranch |NN RExC_state_t *pRExC_state \
- |NN I32 *flagp|I32 first|U32 depth
-ES |void |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \
- |NN regnode* const node \
- |NULLOK SV* const cp_list \
- |NULLOK SV* const runtime_defns \
- |NULLOK SV* const only_utf8_locale_list
-ES |void |output_posix_warnings \
- |NN RExC_state_t *pRExC_state \
- |NN AV* posix_warnings
-ES |AV* |add_multi_match|NULLOK AV* multi_char_matches \
- |NN SV* multi_string \
- |const STRLEN cp_count
-ES |regnode_offset|regclass|NN RExC_state_t *pRExC_state \
- |NN I32 *flagp|U32 depth|const bool stop_at_1 \
- |bool allow_multi_fold \
- |const bool silence_non_portable \
- |const bool strict \
- |bool optimizable \
- |NULLOK SV** ret_invlist
-ES |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
- |NN SV** invlist
-Ei |regnode_offset|handle_named_backref|NN RExC_state_t *pRExC_state \
- |NN I32 *flagp \
- |NN char * parse_start \
- |char ch
-ESTR |unsigned int|regex_set_precedence|const U8 my_operator
-ES |regnode_offset|handle_regex_sets|NN RExC_state_t *pRExC_state \
- |NULLOK SV ** return_invlist \
- |NN I32 *flagp|U32 depth \
- |NN char * const oregcomp_parse
-ES |void |set_regex_pv |NN RExC_state_t *pRExC_state|NN REGEXP *Rx
-#if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
-ES |void |dump_regex_sets_structures \
- |NN RExC_state_t *pRExC_state \
- |NN AV * stack \
- |const IV fence|NN AV * fence_stack
-#endif
-ES |void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state
-ES |regnode_offset|reg_node|NN RExC_state_t *pRExC_state|U8 op
-ES |regnode_offset|regpiece|NN RExC_state_t *pRExC_state \
- |NN I32 *flagp|U32 depth
-ES |bool |grok_bslash_N |NN RExC_state_t *pRExC_state \
- |NULLOK regnode_offset* nodep \
- |NULLOK UV *code_point_p \
- |NULLOK int* cp_count \
- |NN I32 *flagp \
- |const bool strict \
- |const U32 depth
-ES |void |reginsert |NN RExC_state_t *pRExC_state \
- |const U8 op \
- |const regnode_offset operand \
- |const U32 depth
-ESR |bool |regtail |NN RExC_state_t * pRExC_state \
- |NN const regnode_offset p \
- |NN const regnode_offset val \
- |const U32 depth
-ES |SV * |reg_scan_name |NN RExC_state_t *pRExC_state \
- |U32 flags
-ES |U32 |join_exact |NN RExC_state_t *pRExC_state \
- |NN regnode *scan|NN UV *min_subtract \
- |NN bool *unfolded_multi_char \
- |U32 flags|NULLOK regnode *val|U32 depth
-EiT |U8 |compute_EXACTish|NN RExC_state_t *pRExC_state
-ES |void |nextchar |NN RExC_state_t *pRExC_state
-ES |void |skip_to_be_ignored_text|NN RExC_state_t *pRExC_state \
- |NN char ** p \
- |const bool force_to_xmod
-EiT |char * |reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p
-ES |void |scan_commit |NN const RExC_state_t *pRExC_state \
- |NN struct scan_data_t *data \
- |NN SSize_t *minlenp \
- |int is_inf
-ES |void |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr
-ES |void |ssc_anything |NN regnode_ssc *ssc
-ESRT |int |ssc_is_anything|NN const regnode_ssc *ssc
-ES |void |ssc_init |NN const RExC_state_t *pRExC_state \
- |NN regnode_ssc *ssc
-ESRT |int |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
- |NN const regnode_ssc *ssc
-ES |void |ssc_and |NN const RExC_state_t *pRExC_state \
- |NN regnode_ssc *ssc \
- |NN const regnode_charclass *and_with
-ES |void |ssc_or |NN const RExC_state_t *pRExC_state \
- |NN regnode_ssc *ssc \
- |NN const regnode_charclass *or_with
-ES |SV* |get_ANYOF_cp_list_for_ssc \
- |NN const RExC_state_t *pRExC_state \
- |NN const regnode_charclass* const node
-Ei |void |ssc_intersection|NN regnode_ssc *ssc \
- |NN SV* const invlist|const bool invert_2nd
-Ei |void |ssc_union |NN regnode_ssc *ssc \
- |NN SV* const invlist|const bool invert_2nd
-Ei |void |ssc_add_range |NN regnode_ssc *ssc \
- |UV const start|UV const end
-Ei |void |ssc_cp_and |NN regnode_ssc *ssc \
- |UV const cp
-EiT |void |ssc_clear_locale|NN regnode_ssc *ssc
-ETS |bool |is_ssc_worth_it|NN const RExC_state_t * pRExC_state \
- |NN const regnode_ssc * ssc
-ES |void |ssc_finalize |NN RExC_state_t *pRExC_state \
- |NN regnode_ssc *ssc
-ES |SSize_t|study_chunk |NN RExC_state_t *pRExC_state \
- |NN regnode **scanp|NN SSize_t *minlenp \
- |NN SSize_t *deltap|NN regnode *last \
- |NULLOK struct scan_data_t *data \
- |I32 stopparen|U32 recursed_depth \
- |NULLOK regnode_ssc *and_withp \
- |U32 flags|U32 depth
-ESR |SV * |get_ANYOFM_contents|NN const regnode * n
-ESRT |U32 |add_data |NN RExC_state_t* const pRExC_state \
- |NN const char* const s|const U32 n
-rS |void |re_croak2 |bool utf8|NN const char* pat1|NN const char* pat2|...
-ES |int |handle_possible_posix \
- |NN RExC_state_t *pRExC_state \
- |NN const char* const s \
- |NULLOK char ** updated_parse_ptr \
- |NULLOK AV** posix_warnings \
- |const bool check_only
-ES |I32 |make_trie |NN RExC_state_t *pRExC_state \
- |NN regnode *startbranch|NN regnode *first \
- |NN regnode *last|NN regnode *tail \
- |U32 word_count|U32 flags|U32 depth
-ES |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
- |NN regnode *source|U32 depth
-ETSR |const char *|cntrl_to_mnemonic|const U8 c
-ETSR |int |edit_distance |NN const UV *src \
- |NN const UV *tgt \
- |const STRLEN x \
- |const STRLEN y \
- |const SSize_t maxDistance
-EpX |SV * |parse_uniprop_string|NN const char * const name \
- |const Size_t name_len \
- |const bool is_utf8 \
- |const bool to_fold \
- |const bool runtime \
- |const bool deferrable \
- |NN bool * user_defined_ptr \
- |NN SV * msg \
- |const STRLEN level
-EXp |SV * |handle_user_defined_property|NN const char * name \
- |const STRLEN name_len \
- |const bool is_utf8 \
- |const bool to_fold \
- |const bool runtime \
- |const bool deferrable \
- |NN SV* contents \
- |NN bool *user_defined_ptr \
- |NN SV * msg \
- |const STRLEN level
-# ifdef DEBUGGING
-Ep |int |re_indentf |NN const char *fmt|U32 depth|...
-ES |void |regdump_intflags|NULLOK const char *lead| const U32 flags
-ES |void |regdump_extflags|NULLOK const char *lead| const U32 flags
-ES |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
- |NN const regnode *node \
- |NULLOK const regnode *last \
- |NULLOK const regnode *plast \
- |NN SV* sv|I32 indent|U32 depth
-ES |void |put_code_point |NN SV* sv|UV c
-ES |bool |put_charclass_bitmap_innards|NN SV* sv \
- |NULLOK char* bitmap \
- |NULLOK SV* nonbitmap_invlist \
- |NULLOK SV* only_utf8_locale_invlist\
- |NULLOK const regnode * const node \
- |const bool force_as_is_display
-ES |SV* |put_charclass_bitmap_innards_common \
- |NN SV* invlist \
- |NULLOK SV* posixes \
- |NULLOK SV* only_utf8 \
- |NULLOK SV* not_utf8 \
- |NULLOK SV* only_utf8_locale \
- |const bool invert
-ES |void |put_charclass_bitmap_innards_invlist \
- |NN SV *sv \
- |NN SV* invlist
-ES |void |put_range |NN SV* sv|UV start|const UV end \
- |const bool allow_literals
-ES |void |dump_trie |NN const struct _reg_trie_data *trie\
- |NULLOK HV* widecharmap|NN AV *revcharmap\
- |U32 depth
-ES |void |dump_trie_interim_list|NN const struct _reg_trie_data *trie\
- |NULLOK HV* widecharmap|NN AV *revcharmap\
- |U32 next_alloc|U32 depth
-ES |void |dump_trie_interim_table|NN const struct _reg_trie_data *trie\
- |NULLOK HV* widecharmap|NN AV *revcharmap\
- |U32 next_alloc|U32 depth
-ESR |bool |regtail_study |NN RExC_state_t *pRExC_state \
- |NN regnode_offset p|NN const regnode_offset val|U32 depth
+#if defined(PERL_IN_HV_C)
+S |void |hsplit |NN HV *hv|STRLEN const oldsize|STRLEN newsize
+S |void |hv_free_entries|NN HV *hv
+S |SV* |hv_free_ent_ret|NN HV *hv|NN HE *entry
+SR |HE* |new_he
+SaTR |HEK* |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
+ST |void |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
+S |void |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
+SR |HEK* |share_hek_flags|NN const char *str|STRLEN len|U32 hash|int flags
+rS |void |hv_notallowed |int flags|NN const char *key|I32 klen|NN const char *msg
+iT |U32|ptr_hash|PTRV u
+S |struct xpvhv_aux*|hv_auxinit|NN HV *hv
+ST |struct xpvhv_aux*|hv_auxinit_internal|NN struct xpvhv_aux *iter
+Sx |SV* |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
+ |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \
+ |U32 hash
+Sx |void |clear_placeholders |NN HV *hv|U32 items
+#endif
+
+#if defined(PERL_IN_MG_C)
+S |void |save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags
+S |int |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth
+S |SV* |magic_methcall1|NN SV *sv|NN const MAGIC *mg \
+ |NN SV *meth|U32 flags \
+ |int n|NULLOK SV *val
+S |void |restore_magic |NULLOK const void *p
+S |void |unwind_handler_stack|NULLOK const void *p
+S |void |fixup_errno_string|NN SV* sv
+
+#endif
+
+#if defined(PERL_IN_OP_C)
+SRT |bool |is_handle_constructor|NN const OP *o|I32 numargs
+SR |I32 |assignment_type|NULLOK const OP *o
+S |void |forget_pmop |NN PMOP *const o
+S |void |find_and_forget_pmops |NN OP *o
+S |void |cop_free |NN COP *cop
+S |OP* |modkids |NULLOK OP *o|I32 type
+S |OP* |scalarboolean |NN OP *o
+SR |OP* |search_const |NN OP *o
+SR |OP* |new_logop |I32 type|I32 flags|NN OP **firstp|NN OP **otherp
+S |void |simplify_sort |NN OP *o
+SRT |bool |scalar_mod_type|NULLOK const OP *o|I32 type
+S |OP * |my_kid |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
+S |OP * |dup_attrlist |NN OP *o
+S |void |apply_attrs |NN HV *stash|NN SV *target|NULLOK OP *attrs
+S |void |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
+S |void |bad_type_pv |I32 n|NN const char *t|NN const OP *o|NN const OP *kid
+S |void |bad_type_gv |I32 n|NN GV *gv|NN const OP *kid|NN const char *t
+S |void |no_bareword_allowed|NN OP *o
+SR |OP* |no_fh_allowed|NN OP *o
+SR |OP* |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
+S |OP* |too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags
+S |bool |looks_like_bool|NN const OP* o
+S |OP* |newGIVWHENOP |NULLOK OP* cond|NN OP *block \
+ |I32 enter_opcode|I32 leave_opcode \
+ |PADOFFSET entertarg
+S |OP* |ref_array_or_hash|NULLOK OP* cond
+S |bool |process_special_blocks |I32 floor \
+ |NN const char *const fullname\
+ |NN GV *const gv|NN CV *const cv
+S |void |clear_special_blocks |NN const char *const fullname\
+ |NN GV *const gv|NN CV *const cv
+#endif
+XpR |void* |Slab_Alloc |size_t sz
+Xp |void |Slab_Free |NN void *op
+#if defined(PERL_DEBUG_READONLY_OPS)
+# if defined(PERL_CORE)
+pe |void |Slab_to_ro |NN OPSLAB *slab
+pe |void |Slab_to_rw |NN OPSLAB *const slab
+# endif
+: Used in OpREFCNT_inc() in sv.c
+poex |OP * |op_refcnt_inc |NULLOK OP *o
+: FIXME - can be static.
+poex |PADOFFSET |op_refcnt_dec |NN OP *o
+#endif
+
+#if defined(PERL_IN_PERL_C)
+S |void |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp
+S |void |forbid_setid |const char flag|const bool suidscript
+S |void |incpush |NN const char *const dir|STRLEN len \
+ |U32 flags
+S |SV* |mayberelocate |NN const char *const dir|STRLEN len \
+ |U32 flags
+S |void |incpush_use_sep|NN const char *p|STRLEN len|U32 flags
+S |void |init_interp
+S |void |init_ids
+S |void |init_main_stash
+S |void |init_perllib
+S |void |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env
+S |void |init_predump_symbols
+rS |void |my_exit_jump
+S |void |nuke_stacks
+S |PerlIO *|open_script |NN const char *scriptname|bool dosearch \
+ |NN bool *suidscript
+Sr |void |usage
+#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
+So |void |validate_suid |NN PerlIO *rsfp
+#endif
+Sr |void |minus_v
+
+S |void* |parse_body |NULLOK char **env|XSINIT_t xsinit
+rS |void |run_body |I32 oldscope
+# ifndef PERL_IS_MINIPERL
+S |SV * |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
# endif
#endif
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
-EXRp |bool |isFOO_lc |const U8 classnum|const U8 character
+#if defined(PERL_IN_PP_C)
+S |size_t |do_chomp |NN SV *retval|NN SV *sv|bool chomping
+S |OP* |do_delete_local
+SR |SV* |refto |NN SV* sv
+#endif
+#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
+: Used in pp_hot.c
+pReo |GV* |softref2xv |NN SV *const sv|NN const char *const what \
+ |const svtype type|NN SV ***spp
+iTR |bool |lossless_NV_to_IV|const NV nv|NN IV * ivp
+#endif
+#if defined(PERL_IN_PP_HOT_C)
+IR |bool |should_we_output_Debug_r|NN regexp * prog
#endif
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
-ERp |bool |_is_grapheme |NN const U8 * strbeg|NN const U8 * s|NN const U8 *strend|const UV cp
+#if defined(PERL_IN_PP_PACK_C)
+S |SSize_t|unpack_rec |NN struct tempsym* symptr|NN const char *s \
+ |NN const char *strbeg|NN const char *strend|NULLOK const char **new_s
+S |SV ** |pack_rec |NN SV *cat|NN struct tempsym* symptr|NN SV **beglist|NN SV **endlist
+S |SV* |mul128 |NN SV *sv|U8 m
+S |SSize_t|measure_struct |NN struct tempsym* symptr
+S |bool |next_symbol |NN struct tempsym* symptr
+SR |SV* |is_an_int |NN const char *s|STRLEN l
+S |int |div128 |NN SV *pnum|NN bool *done
+S |const char *|group_end |NN const char *patptr|NN const char *patend \
+ |char ender
+SR |const char *|get_num |NN const char *patptr|NN SSize_t *lenptr
+TS |bool |need_utf8 |NN const char *pat|NN const char *patend
+TS |char |first_symbol |NN const char *pat|NN const char *patend
+SR |char * |sv_exp_grow |NN SV *sv|STRLEN needed
+STR |char * |my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \
+ |const bool needs_swap
#endif
-#if defined(PERL_IN_REGEXEC_C)
-ERS |bool |isFOO_utf8_lc |const U8 classnum|NN const U8* character|NN const U8* e
-ERTS |U8 * |find_next_masked|NN U8 * s \
- |NN const U8 * send \
- |const U8 byte|const U8 mask
-ERTS |U8 *|find_span_end |NN U8* s|NN const U8 * send|const U8 span_byte
-ERTS |U8 *|find_span_end_mask|NN U8 * s|NN const U8 * send \
- |const U8 span_byte|const U8 mask
-ERS |SSize_t|regmatch |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
-WERS |I32 |regrepeat |NN regexp *prog|NN char **startposp \
- |NN const regnode *p \
- |NN char *loceol \
- |NN regmatch_info *const reginfo \
- |I32 max
-ERS |bool |regtry |NN regmatch_info *reginfo|NN char **startposp
-ERS |bool |reginclass |NULLOK regexp * const prog \
- |NN const regnode * const n \
- |NN const U8 * const p \
- |NN const U8 * const p_end \
- |bool const utf8_target
-WES |CHECKPOINT|regcppush |NN const regexp *rex|I32 parenfloor\
- |U32 maxopenparen
-WES |void |regcppop |NN regexp *rex|NN U32 *maxopenparen_p
-WES |void |regcp_restore |NN regexp *rex|I32 ix|NN U32 *maxopenparen_p
-ERST |U8* |reghop3 |NN U8 *s|SSize_t off|NN const U8 *lim
-ERST |U8* |reghop4 |NN U8 *s|SSize_t off|NN const U8 *llim \
- |NN const U8 *rlim
-ERST |U8* |reghopmaybe3 |NN U8 *s|SSize_t off|NN const U8 * const lim
-ERS |char* |find_byclass |NN regexp * prog|NN const regnode *c \
- |NN char *s|NN const char *strend \
- |NULLOK regmatch_info *reginfo
-ES |void |to_utf8_substr |NN regexp * prog
-ES |bool |to_byte_substr |NN regexp * prog
-ERST |I32 |reg_check_named_buff_matched |NN const regexp *rex \
- |NN const regnode *scan
-ESR |bool |isGCB |const GCB_enum before \
- |const GCB_enum after \
- |NN const U8 * const strbeg \
- |NN const U8 * const curpos \
- |const bool utf8_target
-ESR |GCB_enum|backup_one_GCB|NN const U8 * const strbeg \
- |NN U8 ** curpos \
- |const bool utf8_target
-ESR |bool |isLB |LB_enum before \
- |LB_enum after \
- |NN const U8 * const strbeg \
- |NN const U8 * const curpos \
- |NN const U8 * const strend \
- |const bool utf8_target
-ESR |LB_enum|advance_one_LB |NN U8 ** curpos \
- |NN const U8 * const strend \
- |const bool utf8_target
-ESR |LB_enum|backup_one_LB |NN const U8 * const strbeg \
- |NN U8 ** curpos \
- |const bool utf8_target
-ESR |bool |isSB |SB_enum before \
- |SB_enum after \
- |NN const U8 * const strbeg \
- |NN const U8 * const curpos \
- |NN const U8 * const strend \
- |const bool utf8_target
-ESR |SB_enum|advance_one_SB |NN U8 ** curpos \
- |NN const U8 * const strend \
- |const bool utf8_target
-ESR |SB_enum|backup_one_SB |NN const U8 * const strbeg \
- |NN U8 ** curpos \
- |const bool utf8_target
-ESR |bool |isWB |WB_enum previous \
- |WB_enum before \
- |WB_enum after \
- |NN const U8 * const strbeg \
- |NN const U8 * const curpos \
- |NN const U8 * const strend \
- |const bool utf8_target
-ESR |WB_enum|advance_one_WB |NN U8 ** curpos \
- |NN const U8 * const strend \
- |const bool utf8_target \
- |const bool skip_Extend_Format
-ESR |WB_enum|backup_one_WB |NN WB_enum * previous \
- |NN const U8 * const strbeg \
- |NN U8 ** curpos \
- |const bool utf8_target
-EiT |I32 |foldEQ_latin1_s2_folded|NN const char* a|NN const char* b|I32 len
-# ifdef DEBUGGING
-ES |void |dump_exec_pos |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
- |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8|const U32 depth
-ES |void |debug_start_match|NN const REGEXP *prog|const bool do_utf8\
- |NN const char *start|NN const char *end\
- |NN const char *blurb
+#if defined(PERL_IN_PP_CTL_C)
+SdR |OP* |docatch |Perl_ppaddr_t firstpp
+SR |OP* |dofindlabel |NN OP *o|NN const char *label|STRLEN len \
+ |U32 flags|NN OP **opstack|NN OP **oplimit
+S |MAGIC *|doparseform |NN SV *sv
+STR |bool |num_overflow |NV value|I32 fldsize|I32 frcsize
+SR |I32 |dopoptoeval |I32 startingblock
+SR |I32 |dopoptogivenfor|I32 startingblock
+SR |I32 |dopoptolabel |NN const char *label|STRLEN len|U32 flags
+SR |I32 |dopoptoloop |I32 startingblock
+SR |I32 |dopoptosub_at |NN const PERL_CONTEXT* cxstk|I32 startingblock
+SR |I32 |dopoptowhen |I32 startingblock
+S |void |save_lines |NULLOK AV *array|NN SV *sv
+S |bool |doeval_compile |U8 gimme \
+ |NULLOK CV* outside|U32 seq|NULLOK HV* hh
+SR |PerlIO *|check_type_and_open|NN SV *name
+#ifndef PERL_DISABLE_PMC
+SR |PerlIO *|doopen_pm |NN SV *name
+#endif
+iRT |bool |path_is_searchable|NN const char *name
+SR |I32 |run_user_filter|int idx|NN SV *buf_sv|int maxlen
+SR |PMOP* |make_matcher |NN REGEXP* re
+SR |bool |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
+S |void |destroy_matcher|NN PMOP* matcher
+S |OP* |do_smartmatch |NULLOK HV* seen_this \
+ |NULLOK HV* seen_other|const bool copied
+#endif
+
+#if defined(PERL_IN_PP_HOT_C)
+S |void |do_oddball |NN SV **oddkey|NN SV **firstkey
+i |HV* |opmethod_stash |NN SV* meth
+#endif
+
+#if defined(PERL_IN_PP_SORT_C)
+I |I32 |sv_ncmp |NN SV *const a|NN SV *const b
+I |I32 |sv_ncmp_desc |NN SV *const a|NN SV *const b
+I |I32 |sv_i_ncmp |NN SV *const a|NN SV *const b
+I |I32 |sv_i_ncmp_desc |NN SV *const a|NN SV *const b
+I |I32 |amagic_ncmp |NN SV *const a|NN SV *const b
+I |I32 |amagic_ncmp_desc |NN SV *const a|NN SV *const b
+I |I32 |amagic_i_ncmp |NN SV *const a|NN SV *const b
+I |I32 |amagic_i_ncmp_desc |NN SV *const a|NN SV *const b
+I |I32 |amagic_cmp |NN SV *const str1|NN SV *const str2
+I |I32 |amagic_cmp_desc |NN SV *const str1|NN SV *const str2
+I |I32 |cmp_desc |NN SV *const str1|NN SV *const str2
+# ifdef USE_LOCALE_COLLATE
+I |I32 |amagic_cmp_locale |NN SV *const str1|NN SV *const str2
+I |I32 |amagic_cmp_locale_desc|NN SV *const str1|NN SV *const str2
+I |I32 |cmp_locale_desc|NN SV *const str1|NN SV *const str2
+# endif
+S |I32 |sortcv |NN SV *const a|NN SV *const b
+S |I32 |sortcv_xsub |NN SV *const a|NN SV *const b
+S |I32 |sortcv_stacked |NN SV *const a|NN SV *const b
+I |void |sortsv_flags_impl |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
+#endif
-Ep |int |re_exec_indentf |NN const char *fmt|U32 depth|...
+#if defined(PERL_IN_PP_SYS_C)
+S |OP* |doform |NN CV *cv|NN GV *gv|NULLOK OP *retop
+# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
+SR |int |dooneliner |NN const char *cmd|NN const char *filename
# endif
+S |SV * |space_join_names_mortal|NULLOK char *const *array
#endif
+Fp |OP * |tied_method|NN SV *methname|NN SV **sp \
+ |NN SV *const sv|NN const MAGIC *const mg \
+ |const U32 flags|U32 argc|...
#if defined(PERL_IN_DUMP_C)
S |CV* |deb_curcv |I32 ix
|NN const char* const e \
|const bool is_utf8 \
|NN const char** error_msg
+EXpR |HV* |load_charnames |NN SV * char_name \
+ |NN const char * context \
+ |const STRLEN context_len \
+ |NN const char ** error_msg
: For use ONLY in B::Hooks::Parser, by special dispensation
EXpxR |char* |scan_str |NN char *start|int keep_quoted \
|bool curstash
#if defined(PERL_IN_UNIVERSAL_C)
-S |bool |isa_lookup |NN HV *stash|NN const char * const name \
+SG |bool |isa_lookup |NULLOK HV *stash|NULLOK SV *namesv|NULLOK const char * name \
|STRLEN len|U32 flags
+SG |bool |sv_derived_from_svpvn |NULLOK SV *sv \
+ |NULLOK SV *namesv \
+ |NULLOK const char * name \
+ |const STRLEN len \
+ |U32 flags
#endif
#if defined(PERL_IN_LOCALE_C)
iR |bool |is_utf8_common |NN const U8 *const p \
|NN const U8 *const e \
|NULLOK SV* const invlist
-SR |SV* |swatch_get |NN SV* swash|UV start|UV span
-SR |U8* |swash_scan_list_line|NN U8* l|NN U8* const lend|NN UV* min \
- |NN UV* max|NN UV* val|const bool wants_value \
- |NN const U8* const typestr
#endif
EXiTp |void |append_utf8_from_native_byte|const U8 byte|NN U8** dest
ApT |int |my_socketpair |int family|int type|int protocol|int fd[2]
ApT |int |my_dirfd |NULLOK DIR* dir
#ifdef PERL_ANY_COW
-: Used in pp_hot.c and regexec.c
+: Used in regexec.c
pxXE |SV* |sv_setsv_cow |NULLOK SV* dstr|NN SV* sstr
#endif
|NN PADNAME** out_name|NN int *out_flags
#endif
#ifdef DEBUGGING
-Apd |SV* |pad_sv |PADOFFSET po
+Cpd |SV* |pad_sv |PADOFFSET po
Apd |void |pad_setsv |PADOFFSET po|NN SV* sv
#endif
pd |void |pad_block_start|int full
#if defined(PERL_IN_UTIL_C)
S |bool |ckwarn_common |U32 w
#endif
-ApoP |bool |ckwarn |U32 w
-ApoP |bool |ckwarn_d |U32 w
+CpoP |bool |ckwarn |U32 w
+CpoP |bool |ckwarn_d |U32 w
: FIXME - exported for ByteLoader - public or private?
XEopxR |STRLEN *|new_warnings_bitfield|NULLOK STRLEN *buffer \
|NN const char *const bits|STRLEN size
AMpTdf |int |my_snprintf |NN char *buffer|const Size_t len|NN const char *format|...
AMpTd |int |my_vsnprintf |NN char *buffer|const Size_t len|NN const char *format|va_list ap
#ifdef USE_QUADMATH
-ApTd |const char* |quadmath_format_single|NN const char* format
-ApTd |bool|quadmath_format_needed|NN const char* format
+pTd |bool |quadmath_format_valid|NN const char* format
+pTd |bool|quadmath_format_needed|NN const char* format
#endif
: Used in mg.c, sv.c
pe |void |my_clearenv
#ifdef PERL_IMPLICIT_CONTEXT
-#ifdef PERL_GLOBAL_STRUCT_PRIVATE
-Apo |void* |my_cxt_init |NN const char *my_cxt_key|size_t size
-Apo |int |my_cxt_index |NN const char *my_cxt_key
-#else
Apo |void* |my_cxt_init |NN int *indexp|size_t size
#endif
-#endif
#if defined(PERL_IN_UTIL_C)
So |void |xs_version_bootcheck|U32 items|U32 ax|NN const char *xs_p \
|STRLEN xs_len
#endif
-XpoT |I32 |xs_handshake |const U32 key|NN void * v_my_perl\
+FXpoT |I32 |xs_handshake |const U32 key|NN void * v_my_perl\
|NN const char * file| ...
Xp |void |xs_boot_epilog |const I32 ax
#ifndef HAS_STRLCAT
#endif
#ifndef HAS_STRNLEN
-ApTd |Size_t |my_strnlen |NN const char *str|Size_t maxlen
+AipTd |Size_t |my_strnlen |NN const char *str|Size_t maxlen
#endif
#ifndef HAS_MKOSTEMP
#endif
APpdT |bool |isinfnan |NV nv
-p |bool |isinfnansv |NN SV *sv
+pd |bool |isinfnansv |NN SV *sv
#if !defined(HAS_SIGNBIT)
AxdToP |int |Perl_signbit |NV f
pde |void |mro_package_moved |NULLOK HV * const stash|NULLOK HV * const oldstash|NN const GV * const gv|U32 flags
: Only used in perl.c
p |void |boot_core_mro
-ApoT |void |sys_init |NN int* argc|NN char*** argv
-ApoT |void |sys_init3 |NN int* argc|NN char*** argv|NN char*** env
-ApoT |void |sys_term
+CpoT |void |sys_init |NN int* argc|NN char*** argv
+CpoT |void |sys_init3 |NN int* argc|NN char*** argv|NN char*** env
+CpoT |void |sys_term
Apxd |const char *|cop_fetch_label|NN COP *const cop \
|NULLOK STRLEN *len|NULLOK U32 *flags
: Only used in op.c and the perl compiler
#endif
: Used in perl.c and toke.c
-op |void |populate_isa |NN const char *name|STRLEN len|...
+Fop |void |populate_isa |NN const char *name|STRLEN len|...
: Some static inline functions need predeclaration because they are used
: inside other static inline functions.
|U8 gimme|int filter
#ifndef PERL_NO_INLINE_FUNCTIONS
-Aixp |U8 |gimme_V |
-Aixp |PERL_CONTEXT * |cx_pushblock|U8 type|U8 gimme|NN SV** sp|I32 saveix
-Aixp |void |cx_popblock|NN PERL_CONTEXT *cx
-Aixp |void |cx_topblock|NN PERL_CONTEXT *cx
-Aixp |void |cx_pushsub |NN PERL_CONTEXT *cx|NN CV *cv \
+Cixp |U8 |gimme_V |
+Cixp |PERL_CONTEXT * |cx_pushblock|U8 type|U8 gimme|NN SV** sp|I32 saveix
+Cixp |void |cx_popblock|NN PERL_CONTEXT *cx
+Cixp |void |cx_topblock|NN PERL_CONTEXT *cx
+Cixp |void |cx_pushsub |NN PERL_CONTEXT *cx|NN CV *cv \
|NULLOK OP *retop|bool hasargs
-Aixp |void |cx_popsub_common|NN PERL_CONTEXT *cx
-Aixp |void |cx_popsub_args |NN PERL_CONTEXT *cx
-Aixp |void |cx_popsub |NN PERL_CONTEXT *cx
-Aixp |void |cx_pushformat |NN PERL_CONTEXT *cx|NN CV *cv \
+Cixp |void |cx_popsub_common|NN PERL_CONTEXT *cx
+Cixp |void |cx_popsub_args |NN PERL_CONTEXT *cx
+Cixp |void |cx_popsub |NN PERL_CONTEXT *cx
+Cixp |void |cx_pushformat |NN PERL_CONTEXT *cx|NN CV *cv \
|NULLOK OP *retop|NULLOK GV *gv
-Aixp |void |cx_popformat |NN PERL_CONTEXT *cx
-Aixp |void |cx_pusheval |NN PERL_CONTEXT *cx \
+Cixp |void |cx_popformat |NN PERL_CONTEXT *cx
+Cixp |void |cx_pusheval |NN PERL_CONTEXT *cx \
|NULLOK OP *retop|NULLOK SV *namesv
-Aixp |void |cx_popeval |NN PERL_CONTEXT *cx
-Aixp |void |cx_pushloop_plain|NN PERL_CONTEXT *cx
-Aixp |void |cx_pushloop_for |NN PERL_CONTEXT *cx \
+Cixp |void |cx_popeval |NN PERL_CONTEXT *cx
+Cixp |void |cx_pushloop_plain|NN PERL_CONTEXT *cx
+Cixp |void |cx_pushloop_for |NN PERL_CONTEXT *cx \
|NN void *itervarp|NULLOK SV *itersave
-Aixp |void |cx_poploop |NN PERL_CONTEXT *cx
-Aixp |void |cx_pushwhen |NN PERL_CONTEXT *cx
-Aixp |void |cx_popwhen |NN PERL_CONTEXT *cx
-Aixp |void |cx_pushgiven |NN PERL_CONTEXT *cx|NULLOK SV *orig_defsv
-Aixp |void |cx_popgiven |NN PERL_CONTEXT *cx
+Cixp |void |cx_poploop |NN PERL_CONTEXT *cx
+Cixp |void |cx_pushwhen |NN PERL_CONTEXT *cx
+Cixp |void |cx_popwhen |NN PERL_CONTEXT *cx
+Cixp |void |cx_pushgiven |NN PERL_CONTEXT *cx|NULLOK SV *orig_defsv
+Cixp |void |cx_popgiven |NN PERL_CONTEXT *cx
#endif
#ifdef USE_DTRACE