From: Nicholas Clark Date: Thu, 27 Nov 2008 19:13:28 +0000 (+0000) Subject: Note (hopefully) all the use cases of all the rest of the non-public but X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d67fec574fe4138665a5e0ed89833497c7102c1e;p=p5sagit%2Fp5-mst-13.2.git Note (hopefully) all the use cases of all the rest of the non-public but exported APIs. p4raw-id: //depot/perl@34946 --- diff --git a/embed.fnc b/embed.fnc index bda81cd..fa4a94e 100644 --- a/embed.fnc +++ b/embed.fnc @@ -101,9 +101,9 @@ START_EXTERN_C Ap |SV* |amagic_call |NN SV* left|NN SV* right|int method|int dir Ap |bool |Gv_AMupdate |NN HV* stash ApR |CV* |gv_handler |NULLOK HV* stash|I32 id -: This is used in perly.y +: Used in perly.y p |OP* |append_elem |I32 optype|NULLOK OP* first|NULLOK OP* last -: This is used in perly.y +: Used in perly.y p |OP* |append_list |I32 optype|NULLOK LISTOP* first|NULLOK LISTOP* last : FIXME - this is only called by pp_chown. They should be merged. p |I32 |apply |I32 type|NN SV** mark|NN SV** sp @@ -112,6 +112,7 @@ Apd |void |av_clear |NN AV *av Apd |SV* |av_delete |NN AV *av|I32 key|I32 flags ApdR |bool |av_exists |NN AV *av|I32 key Apd |void |av_extend |NN AV *av|I32 key +pR |AV* |av_fake |I32 size|NN SV **strp ApdR |SV** |av_fetch |NN AV *av|I32 key|I32 lval Apd |void |av_fill |NN AV *av|I32 fill ApdR |I32 |av_len |NN AV *av @@ -119,6 +120,7 @@ ApdR |AV* |av_make |I32 size|NN SV **strp Apd |SV* |av_pop |NN AV *av ApdoxM |void |av_create_and_push|NN AV **const avp|NN SV *const val Apd |void |av_push |NN AV *av|NN SV *val +: Used in scope.c, and by Data::Alias EXp |void |av_reify |NN AV *av ApdR |SV* |av_shift |NN AV *av Apd |SV** |av_store |NN AV *av|I32 key|NULLOK SV *val @@ -130,19 +132,19 @@ Apo |IV* |av_iter_p |NN AV *av #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT) s |MAGIC* |get_aux_mg |NN AV *av #endif -: This is used in perly.y +: Used in perly.y pR |OP* |bind_match |I32 type|NN OP *left|NN OP *right -: This is used in perly.y +: Used in perly.y pR |OP* |block_end |I32 floor|NULLOK OP* seq ApR |I32 |block_gimme -: This is used in perly.y +: Used in perly.y pR |int |block_start |int full -: This is used in perl.c +: Used in perl.c p |void |boot_core_UNIVERSAL -: This is used in perl.c +: Used in perl.c p |void |boot_core_PerlIO Ap |void |call_list |I32 oldscope|NN AV *paramList -: This is used in serveral source files +: Used in serveral source files pR |bool |cando |Mode_t mode|bool effective|NN const Stat_t* statbufp ApR |U32 |cast_ulong |NV f ApR |I32 |cast_i32 |NV f @@ -151,9 +153,9 @@ ApR |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 -: This is used in perly.y +: Used in perly.y pR |OP* |convert |I32 optype|I32 flags|NULLOK OP* o -: This is used in op.c and perl.c +: Used in op.c and perl.c pM |PERL_CONTEXT* |create_eval_scope|U32 flags : croak()'s first parm can be NULL. Otherwise, mod_perl breaks. Afprd |void |croak |NULLOK const char* pat|... @@ -178,7 +180,7 @@ Afnp |void |sv_setpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|... Afnp |int |fprintf_nocontext|NN PerlIO *stream|NN const char *format|... Afnp |int |printf_nocontext|NN const char *format|... #endif -: This is used in sv.c +: Used in sv.c p |void |cv_ckproto_len |NN const CV* cv|NULLOK const GV* gv\ |NULLOK const char* p|const STRLEN len : Used in pp.c and pp_sys.c @@ -199,6 +201,7 @@ pPR |const char* |get_no_modify : FIXME discussion on p5p pPR |U32* |get_opargs ApPR |PPADDR_t*|get_ppaddr +: Used by CXINC, which appears to be in widespread use EXpR |I32 |cxinc Afp |void |deb |NN const char* pat|... Ap |void |vdeb |NN const char* pat|NULLOK va_list* args @@ -208,6 +211,7 @@ Ap |I32 |debstack Ap |I32 |debstackptrs Ap |char* |delimcpy |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 pM |void |delete_eval_scope : Used in various files p |void |deprecate |NN const char *const s @@ -318,6 +322,7 @@ p |char* |find_script |NN const char *scriptname|bool dosearch \ |NULLOK const char *const *const search_ext|I32 flags #if defined(PERL_IN_OP_C) s |OP* |force_list |NULLOK OP* arg +: FIXME s |OP* |fold_constants |NN OP *o #endif Afpd |char* |form |NN const char* pat|... @@ -356,6 +361,7 @@ Ap |GV* |gv_fetchpv |NN const char *nambeg|I32 add|const svtype sv_type Ap |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 +: Used in scope.c pMox |GP * |newGP |NN GV *const gv Ap |void |gv_init |NN GV* gv|NULLOK HV* stash|NN const char* name|STRLEN len|int multi Ap |void |gv_name_set |NN GV* gv|NN const char *name|U32 len|U32 flags @@ -390,7 +396,9 @@ ApMdR |HE* |hv_iternext_flags|NN HV *hv|I32 flags ApdR |SV* |hv_iterval |NN HV *hv|NN HE *entry Ap |void |hv_ksplit |NN HV *hv|IV newmax Apdbm |void |hv_magic |NN HV *hv|NULLOK GV *gv|int how +: Used in B.xs XEdpoM |HV * |refcounted_he_chain_2hv|NULLOK const struct refcounted_he *c +: Used in APItest.xs XEpoM |SV * |refcounted_he_fetch|NULLOK const struct refcounted_he *chain \ |NULLOK SV *keysv|NULLOK const char *key \ |STRLEN klen, int flags, U32 hash @@ -497,11 +505,12 @@ p |OP* |jmaybe |NN OP *o : Used in pp.c pP |I32 |keyword |NN const char *name|I32 len|bool all_keywords Ap |void |leave_scope |I32 base -: Used in pp_ctl.c +: Used in pp_ctl.c, and by Data::Alias EXp |void |lex_end : Used in various files p |void |lex_start |NULLOK SV* line|NULLOK PerlIO *rsfp|bool new_filter Ap |void |op_null |NN OP* o +: FIXME. Used by Data::Alias EXp |void |op_clear |NN OP* o Ap |void |op_refcnt_lock Ap |void |op_refcnt_unlock @@ -577,6 +586,8 @@ p |char* |mem_collxfrm |NN const char* s|STRLEN len|NN STRLEN* xlen #endif Afp |SV* |mess |NN const char* pat|... Ap |SV* |vmess |NN const char* pat|NULLOK va_list* args +: FIXME - either make it public, or stop exporting it. (Data::Alias uses this) +: Used in gv.c, op.c, toke.c EXp |void |qerror |NN SV* err Apd |void |sortsv |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp Apd |void |sortsv_flags |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags @@ -593,6 +604,7 @@ Apd |void |mg_magical |NN SV* sv Apd |int |mg_set |NN SV* sv Ap |I32 |mg_size |NN SV* sv Ap |void |mini_mktime |NN struct tm *ptm +: Used by MOD(), which Data::Alias uses EXp |OP* |mod |NULLOK OP* o|I32 type : Used in op.c and pp_sys.c p |int |mode_from_discipline|NULLOK const char* s|STRLEN len @@ -805,6 +817,7 @@ Ap |I32 |pregexec |NN REGEXP * const prog|NN char* stringarg \ |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 |NN REGEXP* r Ap |void |regfree_internal|NN REGEXP *const rx #if defined(USE_ITHREADS) @@ -832,10 +845,14 @@ 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 : FIXME - why the E? @@ -930,7 +947,7 @@ s |I32 |setenv_getix |NN const char* nam Apd |void |setdefout |NULLOK GV* gv Ap |HEK* |share_hek |NN const char* str|I32 len|U32 hash #if defined(HAS_SIGACTION) && defined(SA_SIGINFO) -: This is used in perl.c +: Used in perl.c np |Signal_t |sighandler |int sig|NULLOK siginfo_t *info|NULLOK void *uap Anp |Signal_t |csighandler |int sig|NULLOK siginfo_t *info|NULLOK void *uap #else @@ -1130,6 +1147,7 @@ Ap |U8* |uvchr_to_utf8_flags |NN U8 *d|UV uv|UV flags Apd |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 +: Used by Data::Alias EXp |void |vivify_defelem |NN SV* sv : Used in pp.c p |void |vivify_ref |NN SV* sv|U32 to_what @@ -1155,7 +1173,7 @@ Ap |I32 |whichsig |NN const char* sig p |void |write_to_stderr|NN const char* message|int msglen : Used in op.c p |int |yyerror |NN const char *const s -: Used in perly.y +: Used in perly.y, and by Data::Alias EXp |int |yylex : Used in perl.c, pp_ctl.c p |int |yyparse @@ -2045,10 +2063,13 @@ np |long |my_htobel |long n np |long |my_betohl |long n #endif +: I think that these are only used by the above, which are macros, and in turn +: currently they are only used in pp_pack.c, but this is in util.c np |void |my_swabn |NN void* ptr|int n 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 +: Only used in pp.c dpR |bool |is_gv_magical_sv|NN SV *const name_sv|U32 flags ApR |bool |stashpv_hvname_match|NN const COP *c|NN const HV *hv @@ -2063,6 +2084,7 @@ Ap |GV* |gv_SVadd |NN GV* gv #endif Apo |bool |ckwarn |U32 w Apo |bool |ckwarn_d |U32 w +: FIXME - exported for ByteLoader - public or private? XEopMa |STRLEN *|new_warnings_bitfield|NULLOK STRLEN *buffer \ |NN const char *const bits|STRLEN size @@ -2149,7 +2171,9 @@ Mp |int |madparse AMdnoP |int |Perl_signbit |NV f #endif +: Used by B XEMop |void |emulate_cop_io |NN const COP *const c|NN SV *const sv +: Used by SvRX and SvRXOK XEMop |REGEXP *|get_re_arg|NULLOK SV *sv : Used in HvMROMETA() in gv.c, pp_hot.c, universal.c @@ -2173,6 +2197,7 @@ Apon |void |sys_init3 |NN int* argc|NN char*** argv|NN char*** env Apon |void |sys_term ApoM |const char *|fetch_cop_label|NULLOK struct refcounted_he *const chain \ |NULLOK STRLEN *len|NULLOK U32 *flags +: Only used in op.c xpoM |struct refcounted_he *|store_cop_label \ |NULLOK struct refcounted_he *const chain|NN const char *label : Only used in univeral.c