diff options
Diffstat (limited to 'dist/Devel-PPPort/parts/embed.fnc')
-rw-r--r-- | dist/Devel-PPPort/parts/embed.fnc | 291 |
1 files changed, 162 insertions, 129 deletions
diff --git a/dist/Devel-PPPort/parts/embed.fnc b/dist/Devel-PPPort/parts/embed.fnc index 44821311c2..13ec521575 100644 --- a/dist/Devel-PPPort/parts/embed.fnc +++ b/dist/Devel-PPPort/parts/embed.fnc @@ -113,13 +113,14 @@ : function in its full 'Perl_' form with any necessary thread : context parameter. : -: Just below is a description of the automatic documentation generation system -: which heavily involves this file. Below that is a description of all the -: flags used in this file. +: 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 @@ -133,6 +134,19 @@ : 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, @@ -144,76 +158,73 @@ : someone; they don't have to scan multiple pods trying to find something : suitable. : -: In C files, the apidoc lines are inside comment blocks. Inside other files, -: the =for causes lines from there until the next line beginning with an '=' to -: be ignored. -: -: The entries in this file that have corresponding '=for apidoc' entries must -: have the 'd' flag set in this file. -: : There are also lines of this form scattered around the perl : source: : -: =for apidoc_header HEADING_TEXT -: =head1 HEADING_TEXT -: -: where HEADING_TEXT is arbitrary text up to the end of the line. These are -: used by autodoc to group the documentation into sections of related -: items. After having been stripped of leading space, HEADING_TEXT, gives the -: section the following apidoc lines will be grouped under, and its title. -: By using the same HEADING_TEXT in multiple files, everything related will -: automatically get grouped together regardless of its source file. -: Originally, all apidoc lines were in C files, and the =heading1 worked there -: when placed in comment blocks, like the rest of the apidoc lines. But now, -: the documentation can also come from pure perl files, and =head1 has meaning -: to them, so has to be avoided there. You can use the '=for apidoc_header' -: lines anywhere. -: -: Within sections functions are listed, sorted in dictionary order. What goes -: into a section ends with the next =head1, '=for apidoc_header', or the end of -: file. +: =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. : -: It makes sense for some macros to have documentation not in embed.fnc, but -: somewhere else. To that end, also scattered around the perl source are lines -: like this: +: 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 +: +: 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. +: +: 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 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 : -: and with the same meanings as the lines 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 must be 'm', indicating it is a 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 -: number should be the entire argument name if it means a C numeric constant -: "string" should be the entire argument name if it is a literal C -: double-quoted string -: -: Except for "string", the letters above are exact. For example, you have to -: have 't', 'y', 'p', and 'e' literally. Here is an example: +: few conventions. An example would be: : : =for apidoc Am|void|Newxc|void* ptr|int nitems|type|cast : -: The text within double quotes can be arbitrary descriptive text. +: 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. : -: =for apidoc Ama|SV*|newSVpvs|"literal string" +: 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. @@ -304,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 @@ -410,7 +421,9 @@ : 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. : @@ -437,7 +450,10 @@ : embed.h: suppress "#define foo Perl_foo" : : autodoc.pl adds a note that this function must be explicitly called as -: Perl_$name with an aTHX_ parameter. +: Perl_$name, and with an aTHX_ parameter unless the 'T' flag is also +: specified. + +: mnemonic: 'omit' generated macro : : P Pure function: : @@ -499,9 +515,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 : @@ -526,6 +544,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. : @@ -616,6 +636,7 @@ ApdR |SV** |av_fetch |NN AV *av|SSize_t key|I32 lval Apd |void |av_fill |NN AV *av|SSize_t fill ApdR |SSize_t|av_len |NN AV *av ApdR |AV* |av_make |SSize_t size|NN SV **strp +ApdR |AV* |av_new_alloc |SSize_t size|bool zeroflag p |SV* |av_nonelem |NN AV *av|SSize_t ix Apd |SV* |av_pop |NN AV *av Apdoex |void |av_create_and_push|NN AV **const avp|NN SV *const val @@ -624,7 +645,7 @@ 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 -AMdRp |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 @@ -652,10 +673,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 -CdpRT |U32 |cast_ulong |NV f -CdpRT |I32 |cast_i32 |NV f -CdpRT |IV |cast_iv |NV f -CdpRT |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 @@ -679,7 +700,7 @@ fTpre |void |noperl_die|NN const char* pat|... #if defined(WIN32) Tore |void |win32_croak_not_implemented|NN const char * fname #endif -#if defined(PERL_IMPLICIT_CONTEXT) +#if defined(MULTIPLICITY) AdfTrp |void |croak_nocontext|NULLOK const char* pat|... AdfTrp |OP* |die_nocontext |NULLOK const char* pat|... AfTp |void |deb_nocontext |NN const char* pat|... @@ -715,8 +736,8 @@ 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 Cp |void |cx_dump |NN PERL_CONTEXT* cx -AdiMp |GV * |CvGV |NN CV *sv -AdiMTp |I32 * |CvDEPTH |NN const CV * const sv +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 ApRhd |I32 |filter_read |int idx|NN SV *buf_sv|int maxlen @@ -738,19 +759,20 @@ Ap |I32 |debop |NN const OP* o Ap |I32 |debstack Ap |I32 |debstackptrs pR |SV * |defelem_target |NN SV *sv|NULLOK MAGIC *mg -AdTp |char* |delimcpy |NN char* to|NN const char* toend|NN const char* from \ - |NN const char* fromend|int delim|NN I32* retlen -dTp |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 Afrpd |OP* |die |NULLOK const char* pat|... : Used in util.c pr |void |die_unwind |NN SV* msv -Cp |void |dounwind |I32 cxix +Ap |void |dounwind |I32 cxix : FIXME pMb |bool|do_aexec |NULLOK SV* really|NN SV** mark|NN SV** sp : Used in pp_sys.c @@ -855,7 +877,7 @@ p |bool |do_print |NULLOK SV* sv|NN PerlIO* fp pR |OP* |do_readline : Defined in doio.c, used only in pp_sys.c p |bool |do_seek |NULLOK GV* gv|Off_t pos|int whence -Cp |void |do_sprintf |NN SV* sv|SSize_t len|NN SV** sarg +Ap |void |do_sprintf |NN SV* sv|SSize_t len|NN SV** sarg : Defined in doio.c, used only in pp_sys.c p |Off_t |do_sysseek |NN GV* gv|Off_t pos|int whence : Defined in doio.c, used only in pp_sys.c @@ -924,10 +946,10 @@ ApMb |GV* |gv_HVadd |NULLOK GV *gv ApMb |GV* |gv_IOadd |NULLOK GV* gv AdmR |GV* |gv_autoload4 |NULLOK HV* stash|NN const char* name \ |STRLEN len|I32 method -ApRd |GV* |gv_autoload_sv |NULLOK HV* stash|NN SV* namesv|U32 flags -ApRd |GV* |gv_autoload_pv |NULLOK HV* stash|NN const char* namepv \ +ApR |GV* |gv_autoload_sv |NULLOK HV* stash|NN SV* namesv|U32 flags +ApR |GV* |gv_autoload_pv |NULLOK HV* stash|NN const char* namepv \ |U32 flags -ApRd |GV* |gv_autoload_pvn |NULLOK HV* stash|NN const char* name \ +ApR |GV* |gv_autoload_pvn |NULLOK HV* stash|NN const char* name \ |STRLEN len|U32 flags Cp |void |gv_check |NN HV* stash AbpD |void |gv_efullname |NN SV* sv|NN const GV* gv @@ -979,11 +1001,11 @@ 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) -Epd |HV* |gv_stashsvpvn_cached |NULLOK SV *namesv|NULLOK const char* name|U32 namelen|I32 flags +EpGd |HV* |gv_stashsvpvn_cached|SV *namesv|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 @@ -1304,16 +1326,19 @@ 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 p |int |magic_setregexp|NN SV* sv|NN MAGIC* mg +p |int |magic_setsigall|NN SV* sv|NN MAGIC* mg p |int |magic_setsig |NULLOK SV* sv|NN MAGIC* mg p |int |magic_setsubstr|NN SV* sv|NN MAGIC* mg 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 @@ -1323,6 +1348,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) @@ -1353,7 +1379,6 @@ EXpR |MAGIC* |mg_find_mglob |NN SV* sv Apd |int |mg_free |NN SV* sv Apd |void |mg_free_type |NN SV* sv|int how Apd |void |mg_freeext |NN SV* sv|int how|NULLOK const MGVTBL *vtbl -Aipd |void |SvGETMAGIC |NN SV *sv Apd |int |mg_get |NN SV* sv ApdD |U32 |mg_length |NN SV* sv ApdT |void |mg_magical |NN SV* sv @@ -1373,7 +1398,7 @@ S |void |move_proto_attr|NN OP **proto|NN OP **attrs \ : Used in op.c and pp_sys.c p |int |mode_from_discipline|NULLOK const char* s|STRLEN len Cp |const char* |moreswitches |NN const char* s -Adp |NV |my_atof |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 @@ -1423,6 +1448,7 @@ ApdR |OP* |newSLICEOP |I32 flags|NULLOK OP* subscript|NULLOK OP* listop ApdR |OP* |newSTATEOP |I32 flags|NULLOK char* label|NULLOK OP* o AdpbM |CV* |newSUB |I32 floor|NULLOK OP* o|NULLOK OP* proto \ |NULLOK OP* block +ApdRx |OP* |newTRYCATCHOP |I32 flags|NN OP* tryblock|NN OP *catchvar|NN OP* catchblock pd |CV * |newXS_len_flags|NULLOK const char *name|STRLEN len \ |NN XSUBADDR_t subaddr\ |NULLOK const char *const filename \ @@ -1435,6 +1461,8 @@ Apx |CV * |newXS_flags |NULLOK const char *name|NN XSUBADDR_t subaddr\ ApdU |CV* |newXS |NULLOK const char *name|NN XSUBADDR_t subaddr\ |NN const char *filename ApMdbR |AV* |newAV +AmdR |AV* |newAV_alloc_x |SSize_t size +AmdR |AV* |newAV_alloc_xz |SSize_t size ApR |OP* |newAVREF |NN OP* o ApdR |OP* |newBINOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last ApR |OP* |newCVREF |I32 flags|NULLOK OP* o @@ -1455,7 +1483,7 @@ ApdR |OP* |newPADOP |I32 type|I32 flags|NN SV* sv #endif ApdR |OP* |newPMOP |I32 type|I32 flags ApdR |OP* |newPVOP |I32 type|I32 flags|NULLOK char* pv -ApR |SV* |newRV |NN SV *const sv +ApdR |SV* |newRV |NN SV *const sv ApdR |SV* |newRV_noinc |NN SV *const tmpRef ApdR |SV* |newSV |const STRLEN len ApR |OP* |newSVREF |NN OP* o @@ -1476,7 +1504,7 @@ 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 -CpR |SV* |newSVsv_flags |NULLOK SV *const old|I32 flags +AdpR |SV* |newSVsv_flags |NULLOK SV *const old|I32 flags ApdR |SV* |newSV_type |const svtype type ApdR |OP* |newUNOP |I32 type|I32 flags|NULLOK OP* first ApdR |OP* |newUNOP_AUX |I32 type|I32 flags|NULLOK OP* first \ @@ -1703,7 +1731,7 @@ Apd |OP* |op_contextualize|NN OP* o|I32 context p |OP* |scalar |NULLOK OP* o #if defined(PERL_IN_OP_C) S |OP* |scalarkids |NULLOK OP* o -S |OP* |scalarseq |NULLOK OP* o +S |OP* |voidnonfinal |NULLOK OP* o #endif : Used in pp_ctl.c p |OP* |scalarvoid |NN OP* o @@ -1753,7 +1781,7 @@ Cpd |char* |sv_2pv_flags |NN SV *const sv|NULLOK STRLEN *const lp|const U32 flag 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 -Apd |char* |sv_2pvbyte_flags |NN SV *sv|NULLOK STRLEN *const lp|const U32 flags +Ap |char* |sv_2pvbyte_flags |NN SV *sv|NULLOK STRLEN *const lp|const U32 flags AbpD |char* |sv_pvn_nomg |NN SV* sv|NULLOK STRLEN* lp CpMb |UV |sv_2uv |NN SV *sv Apd |UV |sv_2uv_flags |NN SV *const sv|const I32 flags @@ -1779,9 +1807,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 @@ -1857,9 +1885,7 @@ Apd |STRLEN |sv_pos_b2u_flags|NN SV *const sv|STRLEN const offset \ |U32 flags CpMdb |char* |sv_pvn_force |NN SV* sv|NULLOK STRLEN* lp Cpd |char* |sv_pvutf8n_force|NN SV *const sv|NULLOK STRLEN *const lp -Ip |char* |sv_pvutf8n_force_wrapper|NN SV *const sv|NULLOK STRLEN *const lp|const U32 dummy Cpd |char* |sv_pvbyten_force|NN SV *const sv|NULLOK STRLEN *const lp -Ip |char* |sv_pvbyten_force_wrapper|NN SV *const sv|NULLOK STRLEN *const lp|const U32 dummy 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 @@ -1887,7 +1913,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 @@ -1909,9 +1935,9 @@ Apd |void |sv_vsetpvfn |NN SV *const sv|NN const char *const pat|const STRLEN pa |NULLOK va_list *const args|NULLOK SV **const svargs \ |const Size_t sv_count|NULLOK bool *const maybe_tainted CpR |NV |str_to_version |NN SV *sv -Cp |void |regdump |NN const regexp* r +Ap |void |regdump |NN const regexp* r CiTop |struct regexp *|ReANY |NN const REGEXP * const re -Adph |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 @@ -1923,7 +1949,7 @@ Cp |void |regfree_internal|NN REGEXP *const rx Cp |void* |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param #endif EXp |regexp_engine const *|current_re_engine -Adph |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 \ @@ -1973,7 +1999,6 @@ 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 ERS |SV* |make_exactf_invlist |NN RExC_state_t *pRExC_state \ |NN regnode *node ES |regnode_offset|reg |NN RExC_state_t *pRExC_state \ @@ -2014,6 +2039,16 @@ ES |regnode_offset|regclass|NN RExC_state_t *pRExC_state \ |const bool strict \ |bool optimizable \ |NULLOK SV** ret_invlist +ES |U8|optimize_regclass |NN RExC_state_t *pRExC_state \ + |NULLOK SV* cp_list \ + |NULLOK SV* only_utf8_locale_list \ + |NULLOK SV* upper_latin1_only_utf8_matches \ + |const U32 has_runtime_dependency \ + |const U32 posixl \ + |NN U8 * anyof_flags \ + |NN bool * invert \ + |NN regnode_offset * ret \ + |NN I32 *flagp ES |SV * |parse_uniprop_string|NN const char * const name \ |Size_t name_len \ |const bool is_utf8 \ @@ -2064,6 +2099,8 @@ ES |void |dump_regex_sets_structures \ # 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 |U32 |get_quantifier_value|NN RExC_state_t *pRExC_state \ + |NN const char * start|NN const char * end 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 \ @@ -2325,7 +2362,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|NN const char *e|NULLOK const char * result[5] #endif #if defined(PERL_IN_REGEXEC_C) ERS |bool |isFOO_utf8_lc |const U8 classnum|NN const U8* character|NN const U8* e @@ -2420,12 +2457,12 @@ ES |void |debug_start_match|NN const REGEXP *prog|const bool do_utf8\ 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 +#if defined(PERL_IN_REGEXEC_C) +ESR |bool |isFOO_lc |const U8 classnum|const U8 character #endif -Cp |void |taint_env -Cp |void |taint_proper |NULLOK const char* f|NN const char *const s +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 \ @@ -2506,7 +2543,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 @@ -2640,9 +2677,9 @@ 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 @@ -2652,7 +2689,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 \ @@ -2707,14 +2744,8 @@ AiTMdp |SV * |SvREFCNT_inc_NN|NN SV *sv AiTMdp |void |SvREFCNT_inc_void|NULLOK SV *sv AiMdp |void |SvREFCNT_dec |NULLOK SV *sv AiMdp |void |SvREFCNT_dec_NN|NN SV *sv -AdiTp |void |SvAMAGIC_on |NN SV *sv -AdiTp |void |SvAMAGIC_off |NN SV *sv -Aipd |IV |SvIV |NN SV *sv -Aipd |UV |SvUV |NN SV *sv -Aipd |NV |SvNV |NN SV *sv -Aipd |IV |SvIV_nomg |NN SV *sv -Aipd |UV |SvUV_nomg |NN SV *sv -Aipd |NV |SvNV_nomg |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 @@ -2747,13 +2778,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 @@ -2884,6 +2915,7 @@ S |bool |process_special_blocks |I32 floor \ S |void |clear_special_blocks |NN const char *const fullname\ |NN GV *const gv|NN CV *const cv #endif +p |void |no_bareword_filehandle|NN const char *fhname XpR |void* |Slab_Alloc |size_t sz Xp |void |Slab_Free |NN void *op #if defined(PERL_DEBUG_READONLY_OPS) @@ -3077,7 +3109,7 @@ S |int |sv_2iuv_non_preserve |NN SV *const sv SR |STRLEN |expect_number |NN const char **const pattern ST |STRLEN |sv_pos_u2b_forwards|NN const U8 *const start \ |NN const U8 *const send|NN STRLEN *const uoffset \ - |NN bool *const at_end + |NN bool *const at_end|NN bool *canonical_position ST |STRLEN |sv_pos_u2b_midway|NN const U8 *const start \ |NN const U8 *send|STRLEN uoffset|const STRLEN uend S |STRLEN |sv_pos_u2b_cached|NN SV *const sv|NN MAGIC **const mgp \ @@ -3094,7 +3126,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 @@ -3104,7 +3136,7 @@ S |void |anonymise_cv_maybe |NN GV *gv|NN CV *cv po |void * |more_bodies |const svtype sv_type|const size_t body_size \ |const size_t arena_size EXpR |SV* |get_and_check_backslash_N_name|NN const char* s \ - |NN const char* const e \ + |NN const char* e \ |const bool is_utf8 \ |NN const char** error_msg EXpR |HV* |load_charnames |NN SV * char_name \ @@ -3253,13 +3285,13 @@ Cp |bool |_is_cur_LC_category_utf8|int category S |SV* |mess_alloc S |SV * |with_queued_errors|NN SV *ex S |bool |invoke_exception_hook|NULLOK SV *ex|bool warn -#if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL) +# if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL) ST |void |mem_log_common |enum mem_log_type mlt|const UV n|const UV typesize \ |NN const char *type_name|NULLOK const SV *sv \ |Malloc_t oldalloc|Malloc_t newalloc \ |NN const char *filename|const int linenumber \ |NN const char *funcname -#endif +# endif #endif #if defined(PERL_MEM_LOG) @@ -3285,12 +3317,12 @@ 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 U32 flags @@ -3303,7 +3335,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 @@ -3437,7 +3469,7 @@ pR |int |get_debug_opts |NN const char **s|bool givehelp #endif Ap |void |save_set_svflags|NN SV *sv|U32 mask|U32 val #ifdef DEBUGGING -Cpod |void |hv_assert |NN HV *hv +Apod |void |hv_assert |NN HV *hv #endif ApdR |SV* |hv_scalar |NN HV *hv @@ -3506,7 +3538,7 @@ pTd |bool|quadmath_format_needed|NN const char* format : Used in mg.c, sv.c pe |void |my_clearenv -#ifdef PERL_IMPLICIT_CONTEXT +#ifdef MULTIPLICITY Apo |void* |my_cxt_init |NN int *indexp|size_t size #endif #if defined(PERL_IN_UTIL_C) @@ -3547,7 +3579,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 \ @@ -3632,6 +3664,7 @@ Cixp |void |cx_pushformat |NN PERL_CONTEXT *cx|NN CV *cv \ Cixp |void |cx_popformat |NN PERL_CONTEXT *cx Cixp |void |cx_pusheval |NN PERL_CONTEXT *cx \ |NULLOK OP *retop|NULLOK SV *namesv +Cixp |void |cx_pushtry |NN PERL_CONTEXT *cx|NULLOK OP *retop 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 \ |