X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/16376614b347eacefc3e3afd2524fd462bf135f6..f0a7783c659d8808123597cbe1323c36de213ba0:/embed.fnc diff --git a/embed.fnc b/embed.fnc index 2b03a94..3fd59fc 100644 --- a/embed.fnc +++ b/embed.fnc @@ -14,7 +14,7 @@ : 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: @@ -22,9 +22,16 @@ : 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 @@ -106,49 +113,118 @@ : 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' or 'y', indicating it is 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. @@ -239,7 +315,7 @@ : into "#if defined(PERL_CORE) || defined(PERL_EXT)" : : To be usable from dynamically loaded extensions, either: -: 1) it must be static to its containing file ("i" or "s" flag); or +: 1) it must be static to its containing file ("i" or "S" flag); or : 2) be combined with the "X" flag. : : e Not exported @@ -276,33 +352,45 @@ : 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. -: -: 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 +: 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 @@ -333,11 +421,18 @@ : 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. Perhaps a better name would have been '0'. (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. @@ -385,7 +480,8 @@ : : 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__ : @@ -416,9 +512,11 @@ : : For example, the expansion of STR_WITH_LEN is a comma separated pair of : values, so would have this flag; or some macros take preprocessor -: tokens, so would have this flag. This flag is an indication to -: downstream tools, such as Devel::PPPort, that this requires special -: handling. +: tokens, so would have this flag. +: +: This also is used for entries that require processing for use, such as +: being compiled by xsubpp. This flag is an indication to downstream +: tools, such as Devel::PPPort, that this requires special handling. : : U autodoc.pl will not output a usage example : @@ -443,6 +541,8 @@ : any doc entry is marked that it may change. Also used to suppress : making a perlapi doc entry if it would just be a placeholder. : +: y Typedef. The element names a type rather than being a macro +: : In this file, pointer parameters that must not be passed NULLs should be : prefixed with NN. : @@ -474,7 +574,7 @@ ATod |void |perl_free |NN PerlInterpreter *my_perl ATod |int |perl_run |NN PerlInterpreter *my_perl ATod |int |perl_parse |NN PerlInterpreter *my_perl|XSINIT_t xsinit \ |int argc|NULLOK char** argv|NULLOK char** env -ATpR |bool |doing_taint |int argc|NULLOK char** argv|NULLOK char** env +CTpR |bool |doing_taint |int argc|NULLOK char** argv|NULLOK char** env #if defined(USE_ITHREADS) ATod |PerlInterpreter*|perl_clone|NN PerlInterpreter *proto_perl|UV flags # if defined(PERL_IMPLICIT_SYS) @@ -541,13 +641,14 @@ Apd |void |av_push |NN AV *av|NN SV *val 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 +AmdR |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 Apd |void |av_unshift |NN AV *av|SSize_t num -Apo |SV** |av_arylen_p |NN AV *av -Apo |IV* |av_iter_p |NN AV *av +Cpo |SV** |av_arylen_p |NN AV *av +Cpo |IV* |av_iter_p |NN AV *av #if defined(PERL_IN_AV_C) S |MAGIC* |get_aux_mg |NN AV *av #endif @@ -568,10 +669,10 @@ Apd |const PERL_CONTEXT * |caller_cx|I32 level \ |NULLOK const PERL_CONTEXT **dbcxp : Used in several source files pR |bool |cando |Mode_t mode|bool effective|NN const Stat_t* statbufp -ApRT |U32 |cast_ulong |NV f -ApRT |I32 |cast_i32 |NV f -ApRT |IV |cast_iv |NV f -ApRT |UV |cast_uv |NV f +CpRT |U32 |cast_ulong |NV f +CpRT |I32 |cast_i32 |NV f +CpRT |IV |cast_iv |NV f +CpRT |UV |cast_uv |NV f #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) ApR |I32 |my_chsize |int fd|Off_t length #endif @@ -596,19 +697,19 @@ fTpre |void |noperl_die|NN const char* pat|... 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|... -AFTp |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|... -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 |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|... +AdfTp |void |warner_nocontext|U32 err|NN const char* 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 @@ -630,8 +731,8 @@ Apd |SV * |cv_name |NN CV *cv|NULLOK SV *sv|U32 flags Apd |void |cv_undef |NN CV* cv p |void |cv_undef_flags |NN CV* cv|U32 flags pd |void |cv_forget_slab |NULLOK CV *cv -Ap |void |cx_dump |NN PERL_CONTEXT* cx -AiMp |GV * |CvGV |NN CV *sv +Cp |void |cx_dump |NN PERL_CONTEXT* cx +AiMpd |GV * |CvGV |NN CV *sv AiMTp |I32 * |CvDEPTH |NN const CV * const sv Aphd |SV* |filter_add |NULLOK filter_t funcp|NULLOK SV* datasv Ap |void |filter_del |NN filter_t funcp @@ -644,7 +745,7 @@ pPR |const char* |get_no_modify pPR |U32* |get_opargs ApPR |PPADDR_t*|get_ppaddr : Used by CXINC, which appears to be in widespread use -ApR |I32 |cxinc +CpR |I32 |cxinc Afp |void |deb |NN const char* pat|... Ap |void |vdeb |NN const char* pat|NULLOK va_list* args Ap |void |debprofdump @@ -654,12 +755,13 @@ Ap |I32 |debop |NN const OP* o Ap |I32 |debstack Ap |I32 |debstackptrs 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 \ - |NN I32* retlen +ATpd |char* |delimcpy|NN char* to|NN const char* to_end \ + |NN const char* from|NN const char* from_end \ + |const int delim|NN I32* retlen +EXTpd |char* |delimcpy_no_escape|NN char* to|NN const char* to_end \ + |NN const char* from \ + |NN const char* from_end \ + |const int delim|NN I32* retlen : Used in op.c, perl.c px |void |delete_eval_scope Aprd |OP* |die_sv |NN SV *baseex @@ -683,7 +785,7 @@ pM |bool|do_exec |NN const char* cmd 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 @@ -821,8 +923,8 @@ S |OP* |fold_constants |NN OP * const o 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 @@ -875,7 +977,7 @@ Apx |GV* |gv_fetchmethod_pv_flags|NN HV* stash|NN const char* name \ |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 +Adp |GV* |gv_fetchpv |NN const char *nambeg|I32 flags|const svtype sv_type AbpD |void |gv_fullname |NN SV* sv|NN const GV* gv ApMb |void |gv_fullname3 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix Ap |void |gv_fullname4 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain @@ -895,7 +997,7 @@ Ap |void |gv_name_set |NN GV* gv|NN const char *name|U32 len|U32 flags pe |GV * |gv_override |NN const char * const name \ |const STRLEN len Xxpd |void |gv_try_downgrade|NN GV* gv -p |void |gv_setref |NN SV *const dstr|NN SV *const sstr +p |void |gv_setref |NN SV *const dsv|NN SV *const ssv 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) @@ -919,10 +1021,10 @@ AbMdRp |bool |hv_exists_ent |NULLOK HV *hv|NN SV *keysv|U32 hash 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 @@ -972,7 +1074,7 @@ AdmP |I32 |ibcmp |NN const char* a|NN const char* b|I32 len 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 \ @@ -981,7 +1083,7 @@ 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 @@ -1150,7 +1252,7 @@ S |OP* |listkids |NULLOK OP* o #endif p |OP* |list |NULLOK OP* o 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 +Adp |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 @@ -1220,6 +1322,7 @@ dp |int |magic_sethint |NN SV* sv|NN MAGIC* mg p |int |magic_setisa |NN SV* sv|NN MAGIC* mg p |int |magic_setlvref |NN SV* sv|NN MAGIC* mg p |int |magic_setmglob |NN SV* sv|NN MAGIC* mg +p |int |magic_freemglob|NN SV* sv|NN MAGIC* mg p |int |magic_setnkeys |NN SV* sv|NN MAGIC* mg p |int |magic_setpack |NN SV* sv|NN MAGIC* mg p |int |magic_setpos |NN SV* sv|NN MAGIC* mg @@ -1230,6 +1333,7 @@ p |int |magic_settaint |NN SV* sv|NN MAGIC* mg p |int |magic_setuvar |NN SV* sv|NN MAGIC* mg p |int |magic_setvec |NN SV* sv|NN MAGIC* mg p |int |magic_setutf8 |NN SV* sv|NN MAGIC* mg +p |int |magic_freeutf8 |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 @@ -1239,6 +1343,7 @@ Fpod |SV* |magic_methcall |NN SV *sv|NN const MAGIC *mg \ Ap |I32 * |markstack_grow #if defined(USE_LOCALE_COLLATE) p |int |magic_setcollxfrm|NN SV* sv|NN MAGIC* mg +p |int |magic_freecollxfrm|NN SV* sv|NN MAGIC* mg pbD |char* |mem_collxfrm |NN const char* input_string|STRLEN len|NN STRLEN* xlen : Defined in locale.c, used only in sv.c # if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_MATHOMS_C) @@ -1274,7 +1379,7 @@ ApdD |U32 |mg_length |NN SV* sv ApdT |void |mg_magical |NN SV* sv Apd |int |mg_set |NN SV* sv Ap |I32 |mg_size |NN SV* sv -ApT |void |mini_mktime |NN struct tm *ptm +AdpT |void |mini_mktime |NN struct tm *ptm Axmd |OP* |op_lvalue |NULLOK OP* o|I32 type poX |OP* |op_lvalue_flags|NULLOK OP* o|I32 type|U32 flags pd |void |finalize_optree |NN OP* o @@ -1287,8 +1392,8 @@ S |void |move_proto_attr|NN OP **proto|NN OP **attrs \ #endif : Used in op.c and pp_sys.c p |int |mode_from_discipline|NULLOK const char* s|STRLEN len -Ap |const char* |moreswitches |NN const char* s -Ap |NV |my_atof |NN const char *s +Cp |const char* |moreswitches |NN const char* s +Apd |NV |my_atof |NN const char *s ATdpR |NV |my_strtod |NN const char * const s|NULLOK char ** e Aprd |void |my_exit |U32 status Apr |void |my_failure_exit @@ -1296,7 +1401,7 @@ Ap |I32 |my_fflush_all ATp |Pid_t |my_fork ATp |void |atfork_lock ATp |void |atfork_unlock -ApMb |I32 |my_lstat +m |I32 |my_lstat pX |I32 |my_lstat_flags |NULLOK const U32 flags #if ! defined(HAS_MEMRCHR) && (defined(PERL_CORE) || defined(PERL_EXT)) EeiT |void * |my_memrchr |NN const char * s|const char c|const STRLEN len @@ -1307,9 +1412,9 @@ Ap |PerlIO*|my_popen |NN const char* cmd|NN const char* mode #endif Ap |PerlIO*|my_popen_list |NN const char* mode|int n|NN SV ** args Apd |void |my_setenv |NULLOK const char* nam|NULLOK const char* val -ApMb |I32 |my_stat +m |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 @@ -1336,7 +1441,7 @@ Ap |void |newPROG |NN OP* o ApdR |OP* |newRANGE |I32 flags|NN OP* left|NN OP* right ApdR |OP* |newSLICEOP |I32 flags|NULLOK OP* subscript|NULLOK OP* listop ApdR |OP* |newSTATEOP |I32 flags|NULLOK char* label|NULLOK OP* o -ApbM |CV* |newSUB |I32 floor|NULLOK OP* o|NULLOK OP* proto \ +AdpbM |CV* |newSUB |I32 floor|NULLOK OP* o|NULLOK OP* proto \ |NULLOK OP* block pd |CV * |newXS_len_flags|NULLOK const char *name|STRLEN len \ |NN XSUBADDR_t subaddr\ @@ -1387,7 +1492,7 @@ ApdR |SV* |newSVhek |NULLOK const HEK *const hek 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 @@ -1462,10 +1567,10 @@ p |void |rpeep |NULLOK OP* o : 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 -AFTp |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) @@ -1474,7 +1579,7 @@ ApdO |I32 |call_argv |NN const char* sub_name|I32 flags|NN char** argv ApdO |I32 |call_method |NN const char* methname|I32 flags ApdO |I32 |call_pv |NN const char* sub_name|I32 flags ApdO |I32 |call_sv |NN SV* sv|volatile I32 flags -Ap |void |despatch_signals +Cp |void |despatch_signals Ap |OP * |doref |NN OP *o|I32 type|bool set_op_ref ApdO |SV* |eval_pv |NN const char* p|I32 croak_on_error ApdO |I32 |eval_sv |NN SV* sv|I32 flags @@ -1501,7 +1606,7 @@ ApdT |bool |sync_locale ApxT |void |thread_locale_init ApxT |void |thread_locale_term ApdO |void |require_pv |NN const char* pv -AbpdM |void |pack_cat |NN SV *cat|NN const char *pat|NN const char *patend \ +AbpdD |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 #if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C) @@ -1517,7 +1622,7 @@ 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) -ApMb |OP* |ref |NULLOK OP* o|I32 type +pMb |OP* |ref |NULLOK OP* o|I32 type #endif #if defined(PERL_IN_OP_C) S |OP* |refkids |NULLOK OP* o|I32 type @@ -1559,17 +1664,17 @@ Ap |void |save_aelem_flags|NN AV* av|SSize_t idx|NN SV **sptr \ 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 @@ -1579,24 +1684,24 @@ Ap |void |save_hints 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 @@ -1634,23 +1739,23 @@ Ap |HEK* |share_hek |NN const char* str|SSize_t len|U32 hash #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 +CTp |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 +CTp |Signal_t |csighandler |int sig #endif Tp |Signal_t |sighandler1 |int sig -ATp |Signal_t |csighandler1 |int sig +CTp |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 +CTp |Signal_t |csighandler3 |int sig|NULLOK Siginfo_t *info|NULLOK void *uap +CTp |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 @@ -1664,7 +1769,7 @@ Apd |NV |sv_2nv_flags |NN SV *const sv|const I32 flags : Used in pp.c, pp_hot.c, sv.c pxd |SV* |sv_2num |NN SV *const sv ApMb |char* |sv_2pv |NN SV *sv|NULLOK STRLEN *lp -Apd |char* |sv_2pv_flags |NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags +Apd |char* |sv_2pv_flags |NN SV *const sv|NULLOK STRLEN *const lp|const U32 flags ApdMb |char* |sv_2pvutf8 |NN SV *sv|NULLOK STRLEN *const lp Ap |char* |sv_2pvutf8_flags |NN SV *sv|NULLOK STRLEN *const lp|const U32 flags ApdMb |char* |sv_2pvbyte |NN SV *sv|NULLOK STRLEN *const lp @@ -1694,9 +1799,9 @@ S |void |sv_buf_to_rw |NN SV *sv Afpd |void |sv_catpvf |NN SV *const sv|NN const char *const pat|... Apd |void |sv_vcatpvf |NN SV *const sv|NN const char *const pat \ |NULLOK va_list *const args -Apd |void |sv_catpv |NN SV *const sv|NULLOK const char* ptr +Apd |void |sv_catpv |NN SV *const dsv|NULLOK const char* sstr ApMdb |void |sv_catpvn |NN SV *dsv|NN const char *sstr|STRLEN len -ApMdb |void |sv_catsv |NN SV *dstr|NULLOK SV *sstr +ApMdb |void |sv_catsv |NN SV *dsv|NULLOK SV *sstr Apd |void |sv_chop |NN SV *const sv|NULLOK const char *const ptr : Used only in perl.c pd |I32 |sv_clean_all @@ -1800,7 +1905,7 @@ Apd |void |sv_setpv |NN SV *const sv|NULLOK const char *const ptr Apd |void |sv_setpvn |NN SV *const sv|NULLOK const char *const ptr|const STRLEN len 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_setsv |NN SV *dsv|NULLOK SV *ssv 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 @@ -1821,22 +1926,22 @@ Apd |void |sv_vcatpvfn_flags|NN SV *const sv|NN const char *const pat|const STRL Apd |void |sv_vsetpvfn |NN SV *const sv|NN const char *const pat|const STRLEN patlen \ |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 +CpR |NV |str_to_version |NN SV *sv 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 \ +Apdh |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 +Cp |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 +Cp |void |regfree_internal|NN REGEXP *const rx #if defined(USE_ITHREADS) -Ap |void* |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param +Cp |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 +Apdh |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 \ @@ -1852,21 +1957,21 @@ Cp |char* |re_intuit_start|NN REGEXP * const rx \ |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 \ +Cp |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 +CpR |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 +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 @@ -2238,7 +2343,7 @@ EXTp |UV |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int 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 +EXpRT |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 @@ -2392,7 +2497,7 @@ pT |bool |translate_substr_offsets|STRLEN curlen|IV pos1_iv \ |NN STRLEN *lenp #endif #if defined(UNLINK_ALL_VERSIONS) -Ap |I32 |unlnk |NN const char* f +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 \ @@ -2419,7 +2524,7 @@ 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 @@ -2441,7 +2546,7 @@ AdMTp |UV |utf8n_to_uvchr_error|NN const U8 *s \ |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 \ @@ -2460,7 +2565,7 @@ CdbDp |UV |utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 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 CdpbD |U8* |uvuni_to_utf8_flags |NN U8 *d|UV uv|UV flags @@ -2496,10 +2601,10 @@ p |void |report_redefined_cv|NN const SV *name \ Apd |void |warn_sv |NN SV *baseex Afpd |void |warn |NN const char* pat|... Apd |void |vwarn |NN const char* pat|NULLOK va_list* args -Afp |void |warner |U32 err|NN const char* pat|... -Afp |void |ck_warner |U32 err|NN const char* pat|... -Afp |void |ck_warner_d |U32 err|NN const char* pat|... -Ap |void |vwarner |U32 err|NN const char* pat|NULLOK va_list* args +Adfp |void |warner |U32 err|NN const char* pat|... +Adfp |void |ck_warner |U32 err|NN const char* pat|... +Adfp |void |ck_warner_d |U32 err|NN const char* pat|... +Adp |void |vwarner |U32 err|NN const char* pat|NULLOK va_list* args #ifdef USE_C_BACKTRACE pd |Perl_c_backtrace*|get_c_backtrace|int max_depth|int skip dm |void |free_c_backtrace|NN Perl_c_backtrace* bt @@ -2508,10 +2613,10 @@ Apd |bool |dump_c_backtrace|NN PerlIO* fp|int max_depth|int skip #endif : FIXME p |void |watch |NN char** addr -Am |I32 |whichsig |NN const char* sig -Ap |I32 |whichsig_sv |NN SV* sigsv -Ap |I32 |whichsig_pv |NN const char* sig -Ap |I32 |whichsig_pvn |NN const char* sig|STRLEN len +Amd |I32 |whichsig |NN const char* sig +Apd |I32 |whichsig_sv |NN SV* sigsv +Apd |I32 |whichsig_pv |NN const char* sig +Apd |I32 |whichsig_pvn |NN const char* sig|STRLEN len : used to check for NULs in pathnames and other names AiRdp |bool |is_safe_syscall|NN const char *pv|STRLEN len|NN const char *what|NN const char *op_name #ifdef PERL_CORE @@ -2548,19 +2653,14 @@ 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 CrTp |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 -Ap |int |runops_standard -Ap |int |runops_debug +Cp |int |runops_standard +Cp |int |runops_debug Afpd |void |sv_catpvf_mg |NN SV *const sv|NN const char *const pat|... Apd |void |sv_vcatpvf_mg |NN SV *const sv|NN const char *const pat \ |NULLOK va_list *const args -Apd |void |sv_catpv_mg |NN SV *const sv|NULLOK const char *const ptr -ApdbM |void |sv_catpvn_mg |NN SV *sv|NN const char *ptr|STRLEN len -ApdbM |void |sv_catsv_mg |NN SV *dsv|NULLOK SV *ssv +Apd |void |sv_catpv_mg |NN SV *const dsv|NULLOK const char *const sstr +ApdbM |void |sv_catpvn_mg |NN SV *dsv|NN const char *sstr|STRLEN len +ApdbM |void |sv_catsv_mg |NN SV *dsv|NULLOK SV *sstr Afpd |void |sv_setpvf_mg |NN SV *const sv|NN const char *const pat|... Apd |void |sv_vsetpvf_mg |NN SV *const sv|NN const char *const pat \ |NULLOK va_list *const args @@ -2570,7 +2670,7 @@ Apd |void |sv_setuv_mg |NN SV *const sv|const UV u Apd |void |sv_setnv_mg |NN SV *const sv|const NV num Apd |void |sv_setpv_mg |NN SV *const sv|NULLOK const char *const ptr Apd |void |sv_setpvn_mg |NN SV *const sv|NN const char *const ptr|const STRLEN len -Apd |void |sv_setsv_mg |NN SV *const dstr|NULLOK SV *const sstr +Apd |void |sv_setsv_mg |NN SV *const dsv|NULLOK SV *const ssv ApdbM |void |sv_usepvn_mg |NN SV *sv|NULLOK char *ptr|STRLEN len ApR |MGVTBL*|get_vtbl |int vtbl_id Apd |char* |pv_display |NN SV *dsv|NN const char *pv|STRLEN cur|STRLEN len \ @@ -2600,7 +2700,7 @@ Ap |void |do_pmop_dump |I32 level|NN PerlIO *file|NULLOK const PMOP *pm Ap |void |do_sv_dump |I32 level|NN PerlIO *file|NULLOK SV *sv|I32 nest \ |I32 maxnest|bool dumpops|STRLEN pvlim Ap |void |magic_dump |NULLOK const MAGIC *mg -Ap |void |reginitcolors +Cp |void |reginitcolors CpdRMb |char* |sv_2pv_nolen |NN SV* sv CpdRMb |char* |sv_2pvutf8_nolen|NN SV* sv CpdRMb |char* |sv_2pvbyte_nolen|NN SV* sv @@ -2627,10 +2727,14 @@ AiMdp |void |SvREFCNT_dec |NULLOK SV *sv AiMdp |void |SvREFCNT_dec_NN|NN SV *sv AiTp |void |SvAMAGIC_on |NN SV *sv AiTp |void |SvAMAGIC_off |NN SV *sv +Aipd |bool |SvTRUE |NULLOK SV *sv +Aipd |bool |SvTRUE_nomg |NULLOK SV *sv +Aipd |bool |SvTRUE_NN |NN SV *sv +Cip |bool |SvTRUE_common |NN SV *sv|const bool sv_2bool_is_fallback : This is indirectly referenced by globals.c. This is somewhat annoying. p |int |magic_killbackrefs|NN SV *sv|NN MAGIC *mg Ap |OP* |newANONATTRSUB |I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block -Am |CV* |newATTRSUB |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block +Adm |CV* |newATTRSUB |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block pdX |CV* |newATTRSUB_x |I32 floor|NULLOK OP *o|NULLOK OP *proto \ |NULLOK OP *attrs|NULLOK OP *block \ |bool o_is_gv @@ -2640,13 +2744,13 @@ p |CV* |newSTUB |NN GV *gv|bool fake : Used in perly.y p |OP * |my_attrs |NN OP *o|NULLOK OP *attrs #if defined(USE_ITHREADS) -ApR |PERL_CONTEXT*|cx_dup |NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param +CpR |PERL_CONTEXT*|cx_dup |NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param ApR |PERL_SI*|si_dup |NULLOK PERL_SI* si|NN CLONE_PARAMS* param ApR |ANY* |ss_dup |NN PerlInterpreter* proto_perl|NN CLONE_PARAMS* param 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 @@ -2655,13 +2759,13 @@ ApR |MAGIC* |mg_dup |NULLOK MAGIC *mg|NN CLONE_PARAMS *const param #if defined(PERL_IN_SV_C) S |SV ** |sv_dup_inc_multiple|NN SV *const *source|NN SV **dest \ |SSize_t items|NN CLONE_PARAMS *const param -SR |SV* |sv_dup_common |NN const SV *const sstr \ +SR |SV* |sv_dup_common |NN const SV *const ssv \ |NN CLONE_PARAMS *const param #endif -ApR |SV* |sv_dup |NULLOK const SV *const sstr|NN CLONE_PARAMS *const param -ApR |SV* |sv_dup_inc |NULLOK const SV *const sstr \ +ApR |SV* |sv_dup |NULLOK const SV *const ssv|NN CLONE_PARAMS *const param +ApR |SV* |sv_dup_inc |NULLOK const SV *const ssv \ |NN CLONE_PARAMS *const param -Ap |void |rvpv_dup |NN SV *const dstr|NN const SV *const sstr|NN CLONE_PARAMS *const param +Ap |void |rvpv_dup |NN SV *const dsv|NN const SV *const ssv|NN CLONE_PARAMS *const param Ap |yy_parser*|parser_dup |NULLOK const yy_parser *const proto|NN CLONE_PARAMS *const param #endif ApR |PTR_TBL_t*|ptr_table_new @@ -3002,7 +3106,7 @@ S |void |assert_uft8_cache_coherent|NN const char *const func \ ST |char * |F0convert |NV nv|NN char *const endbuf|NN STRLEN *const len S |SV * |more_sv S |bool |sv_2iuv_common |NN SV *const sv -S |void |glob_assign_glob|NN SV *const dstr|NN SV *const sstr \ +S |void |glob_assign_glob|NN SV *const dsv|NN SV *const ssv \ |const int dtype SRT |PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *const tbl|NULLOK const void *const sv S |void |anonymise_cv_maybe |NN GV *gv|NN CV *cv @@ -3193,15 +3297,15 @@ iR |bool |is_utf8_common |NN const U8 *const p \ EXiTp |void |append_utf8_from_native_byte|const U8 byte|NN U8** dest Apd |void |sv_set_undef |NN SV *sv -Apd |void |sv_setsv_flags |NN SV *dstr|NULLOK SV *sstr|const I32 flags -Apd |void |sv_catpvn_flags|NN SV *const dstr|NN const char *sstr|const STRLEN len \ +Apd |void |sv_setsv_flags |NN SV *dsv|NULLOK SV *ssv|const I32 flags +Apd |void |sv_catpvn_flags|NN SV *const dsv|NN const char *sstr|const STRLEN len \ |const I32 flags -Apd |void |sv_catpv_flags |NN SV *dstr|NN const char *sstr \ +Apd |void |sv_catpv_flags |NN SV *dsv|NN const char *sstr \ |const I32 flags -Apd |void |sv_catsv_flags |NN SV *const dsv|NULLOK SV *const ssv|const I32 flags +Apd |void |sv_catsv_flags |NN SV *const dsv|NULLOK SV *const sstr|const I32 flags Amd |STRLEN |sv_utf8_upgrade_flags|NN SV *const sv|const I32 flags Adp |STRLEN |sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra -Apd |char* |sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags +Apd |char* |sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const U32 flags AdpMb |void |sv_copypv |NN SV *const dsv|NN SV *const ssv Amd |void |sv_copypv_nomg |NN SV *const dsv|NN SV *const ssv Apd |void |sv_copypv_flags |NN SV *const dsv|NN SV *const ssv|const I32 flags @@ -3211,7 +3315,7 @@ 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 regexec.c -pxXE |SV* |sv_setsv_cow |NULLOK SV* dstr|NN SV* sstr +pxXE |SV* |sv_setsv_cow |NULLOK SV* dsv|NN SV* ssv #endif Aop |const char *|PerlIO_context_layers|NULLOK const char *mode @@ -3294,7 +3398,7 @@ Sd |PADOFFSET|pad_findlex |NN const char *namepv|STRLEN namelen|U32 flags \ #endif #ifdef DEBUGGING Cpd |SV* |pad_sv |PADOFFSET po -Apd |void |pad_setsv |PADOFFSET po|NN SV* sv +Cpd |void |pad_setsv |PADOFFSET po|NN SV* sv #endif pd |void |pad_block_start|int full Apd |U32 |intro_my @@ -3318,7 +3422,7 @@ Apd |CV* |cv_clone |NN CV* proto p |CV* |cv_clone_into |NN CV* proto|NN CV *target pd |void |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv pdX |void |pad_push |NN PADLIST *padlist|int depth -ApbdRM |HV* |pad_compname_type|const PADOFFSET po +ApbdDR |HV* |pad_compname_type|const PADOFFSET po AxpdRT |PADNAME *|padnamelist_fetch|NN PADNAMELIST *pnl|SSize_t key Xop |void |padnamelist_free|NN PADNAMELIST *pnl Axpd |PADNAME **|padnamelist_store|NN PADNAMELIST *pnl|SSize_t key \ @@ -3384,8 +3488,8 @@ Sxd |SV* |find_uninit_var|NULLOK const OP *const obase \ |NN const char **desc_p #endif -Ap |GV* |gv_fetchpvn_flags|NN const char* name|STRLEN len|I32 flags|const svtype sv_type -Ap |GV* |gv_fetchsv|NN SV *name|I32 flags|const svtype sv_type +Adp |GV* |gv_fetchpvn_flags|NN const char* name|STRLEN len|I32 flags|const svtype sv_type +Adp |GV* |gv_fetchsv|NN SV *name|I32 flags|const svtype sv_type #ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP : Used in sv.c @@ -3398,8 +3502,8 @@ ApbM |GV* |gv_SVadd |NULLOK GV *gv #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 @@ -3415,13 +3519,8 @@ pTd |bool|quadmath_format_needed|NN const char* format 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 @@ -3460,7 +3559,7 @@ XExop |void |emulate_cop_io |NN const COP *const c|NN SV *const sv : Used by SvRX and SvRXOK XExop |REGEXP *|get_re_arg|NULLOK SV *sv -Aopdh |SV* |mro_get_private_data|NN struct mro_meta *const smeta \ +Coph |SV* |mro_get_private_data|NN struct mro_meta *const smeta \ |NN const struct mro_alg *const which Aopdh |SV* |mro_set_private_data|NN struct mro_meta *const smeta \ |NN const struct mro_alg *const which \ @@ -3495,9 +3594,9 @@ Apd |void |mro_method_changed_in |NN HV* stash 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 @@ -3531,29 +3630,29 @@ Apx |void |leave_adjust_stacks|NN SV **from_sp|NN SV **to_sp \ |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 @@ -3565,4 +3664,8 @@ XEop |void |dtrace_probe_phase|enum perl_phase phase XEop |STRLEN*|dup_warnings |NULLOK STRLEN* warnings +#ifndef USE_ITHREADS +Amd |void |CopFILEGV_set |NN COP * c|NN GV * gv +#endif + : ex: set ts=8 sts=4 sw=4 noet: