This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Proper fix for CvOUTSIDE weak refcounting
[perl5.git] / embed.fnc
index e534f52..5c56027 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -75,13 +75,6 @@ p    |OP*    |append_elem    |I32 optype|OP* head|OP* tail
 p      |OP*    |append_list    |I32 optype|LISTOP* first|LISTOP* last
 p      |I32    |apply          |I32 type|SV** mark|SV** sp
 ApM    |void   |apply_attrs_string|char *stashpv|CV *cv|char *attrstr|STRLEN len
-Ap     |SV*    |avhv_delete_ent|AV *ar|SV* keysv|I32 flags|U32 hash
-Ap     |bool   |avhv_exists_ent|AV *ar|SV* keysv|U32 hash
-Ap     |SV**   |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash
-Ap     |SV**   |avhv_store_ent |AV *ar|SV* keysv|SV* val|U32 hash
-Ap     |HE*    |avhv_iternext  |AV *ar
-Ap     |SV*    |avhv_iterval   |AV *ar|HE* entry
-Ap     |HV*    |avhv_keys      |AV *ar
 Apd    |void   |av_clear       |AV* ar
 Apd    |SV*    |av_delete      |AV* ar|I32 key|I32 flags
 Apd    |bool   |av_exists      |AV* ar|I32 key
@@ -113,9 +106,6 @@ Ap  |UV     |cast_uv        |NV f
 #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
 Ap     |I32    |my_chsize      |int fd|Off_t length
 #endif
-#if defined(USE_5005THREADS)
-Ap     |MAGIC* |condpair_magic |SV *sv
-#endif
 p      |OP*    |convert        |I32 optype|I32 flags|OP* o
 Afprd  |void   |croak          |const char* pat|...
 Apr    |void   |vcroak         |const char* pat|va_list* args
@@ -137,10 +127,10 @@ Afnp      |int    |fprintf_nocontext|PerlIO* stream|const char* fmt|...
 Afnp   |int    |printf_nocontext|const char* fmt|...
 #endif
 p      |void   |cv_ckproto     |CV* cv|GV* gv|char* p
-p      |CV*    |cv_clone       |CV* proto
+pd     |CV*    |cv_clone       |CV* proto
 Apd    |SV*    |cv_const_sv    |CV* cv
 p      |SV*    |op_const_sv    |OP* o|CV* cv
-Ap     |void   |cv_undef       |CV* cv
+Apd    |void   |cv_undef       |CV* cv
 Ap     |void   |cx_dump        |PERL_CONTEXT* cs
 Ap     |SV*    |filter_add     |filter_t funcp|SV* datasv
 Ap     |void   |filter_del     |filter_t funcp
@@ -160,6 +150,7 @@ Ap  |I32    |debstackptrs
 Ap     |char*  |delimcpy       |char* to|char* toend|char* from \
                                |char* fromend|int delim|I32* retlen
 p      |void   |deprecate      |char* s
+p      |void   |deprecate_old  |char* s
 Afp    |OP*    |die            |const char* pat|...
 p      |OP*    |vdie           |const char* pat|va_list* args
 p      |OP*    |die_where      |char* message|STRLEN msglen
@@ -171,6 +162,11 @@ p  |void   |do_chop        |SV* asv|SV* sv
 Ap     |bool   |do_close       |GV* gv|bool not_implicit
 p      |bool   |do_eof         |GV* gv
 p      |bool   |do_exec        |char* cmd
+#if defined(WIN32)
+Ap     |int    |do_aspawn      |SV* really|SV** mark|SV** sp
+Ap     |int    |do_spawn       |char* cmd
+Ap     |int    |do_spawn_nowait|char* cmd
+#endif
 #if !defined(WIN32)
 p      |bool   |do_exec3       |char* cmd|int fd|int flag
 #endif
@@ -223,9 +219,6 @@ Apd |char*  |fbm_instr      |unsigned char* big|unsigned char* bigend \
                                |SV* littlesv|U32 flags
 p      |char*  |find_script    |char *scriptname|bool dosearch \
                                |char **search_ext|I32 flags
-#if defined(USE_5005THREADS)
-p      |PADOFFSET|find_threadsv|const char *name
-#endif
 p      |OP*    |force_list     |OP* arg
 p      |OP*    |fold_constants |OP* arg
 Afpd   |char*  |form           |const char* pat|...
@@ -249,6 +242,8 @@ Ap  |void   |gv_efullname4  |SV* sv|GV* gv|const char* prefix|bool keepmain
 Ap     |GV*    |gv_fetchfile   |const char* name
 Apd    |GV*    |gv_fetchmeth   |HV* stash|const char* name|STRLEN len \
                                |I32 level
+Apd    |GV*    |gv_fetchmeth_autoload  |HV* stash|const char* name|STRLEN len \
+                               |I32 level
 Apd    |GV*    |gv_fetchmethod |HV* stash|const char* name
 Apd    |GV*    |gv_fetchmethod_autoload|HV* stash|const char* name \
                                |I32 autoload
@@ -275,12 +270,15 @@ Apd       |char*  |hv_iterkey     |HE* entry|I32* retlen
 Apd    |SV*    |hv_iterkeysv   |HE* entry
 Apd    |HE*    |hv_iternext    |HV* tb
 Apd    |SV*    |hv_iternextsv  |HV* hv|char** key|I32* retlen
+ApMd   |HE*    |hv_iternext_flags|HV* tb|I32 flags
 Apd    |SV*    |hv_iterval     |HV* tb|HE* entry
 Ap     |void   |hv_ksplit      |HV* hv|IV newmax
 Apd    |void   |hv_magic       |HV* hv|GV* gv|int how
 Apd    |SV**   |hv_store       |HV* tb|const char* key|I32 klen|SV* val \
                                |U32 hash
 Apd    |HE*    |hv_store_ent   |HV* tb|SV* key|SV* val|U32 hash
+ApM    |SV**   |hv_store_flags |HV* tb|const char* key|I32 klen|SV* val \
+                               |U32 hash|int flags
 Apd    |void   |hv_undef       |HV* tb
 Ap     |I32    |ibcmp          |const char* a|const char* b|I32 len
 Ap     |I32    |ibcmp_locale   |const char* a|const char* b|I32 len
@@ -290,7 +288,7 @@ p   |void   |init_argv_symbols|int|char **
 p      |void   |init_debugger
 Ap     |void   |init_stacks
 Ap     |void   |init_tm        |struct tm *ptm
-p      |U32    |intro_my
+pd     |U32    |intro_my
 Ap     |char*  |instr          |const char* big|const char* little
 p      |bool   |io_close       |IO* io|bool not_implicit
 p      |OP*    |invert         |OP* cmd
@@ -336,6 +334,7 @@ Apd |bool   |is_utf8_string |U8 *s|STRLEN len
 Ap     |bool   |is_utf8_alnum  |U8 *p
 Ap     |bool   |is_utf8_alnumc |U8 *p
 Ap     |bool   |is_utf8_idfirst|U8 *p
+Ap     |bool   |is_utf8_idcont |U8 *p
 Ap     |bool   |is_utf8_alpha  |U8 *p
 Ap     |bool   |is_utf8_ascii  |U8 *p
 Ap     |bool   |is_utf8_space  |U8 *p
@@ -387,9 +386,6 @@ p   |int    |magic_gettaint |SV* sv|MAGIC* mg
 p      |int    |magic_getuvar  |SV* sv|MAGIC* mg
 p      |int    |magic_getvec   |SV* sv|MAGIC* mg
 p      |U32    |magic_len      |SV* sv|MAGIC* mg
-#if defined(USE_5005THREADS)
-p      |int    |magic_mutexfree|SV* sv|MAGIC* mg
-#endif
 p      |int    |magic_nextpack |SV* sv|MAGIC* mg|SV* key
 p      |U32    |magic_regdata_cnt|SV* sv|MAGIC* mg
 p      |int    |magic_regdatum_get|SV* sv|MAGIC* mg
@@ -529,34 +525,43 @@ Ap        |OP*    |newWHILEOP     |I32 flags|I32 debuggable|LOOP* loop \
                                |I32 whileline|OP* expr|OP* block|OP* cont
 
 Ap     |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
-Apd    |char*  |new_vstring    |char *vstr|SV *sv
+Apd    |char*  |scan_vstring   |char *vstr|SV *sv
+Apd    |char*  |scan_version   |char *vstr|SV *sv
+Apd    |SV*    |new_version    |SV *ver
+Apd    |SV*    |upg_version    |SV *ver
+Apd    |SV*    |vnumify        |SV *vs
+Apd    |SV*    |vstringify     |SV *vs
+Apd    |int    |vcmp           |SV *lvs|SV *rvs
 p      |PerlIO*|nextargv       |GV* gv
 Ap     |char*  |ninstr         |const char* big|const char* bigend \
                                |const char* little|const char* lend
 p      |OP*    |oopsCV         |OP* o
 Ap     |void   |op_free        |OP* arg
 p      |void   |package        |OP* o
-p      |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
-p      |PADOFFSET|pad_allocmy  |char* name
-p      |PADOFFSET|pad_findmy   |char* name
+pd     |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
+p      |PADOFFSET|allocmy      |char* name
+pd     |PADOFFSET|pad_findmy   |char* name
 p      |OP*    |oopsAV         |OP* o
 p      |OP*    |oopsHV         |OP* o
-p      |void   |pad_leavemy    |I32 fill
-Ap     |SV*    |pad_sv         |PADOFFSET po
-p      |void   |pad_free       |PADOFFSET po
-p      |void   |pad_reset
-p      |void   |pad_swipe      |PADOFFSET po
+pd     |void   |pad_leavemy
+Apd    |SV*    |pad_sv         |PADOFFSET po
+pd     |void   |pad_free       |PADOFFSET po
+pd     |void   |pad_reset
+pd     |void   |pad_swipe      |PADOFFSET po|bool refadjust
 p      |void   |peep           |OP* o
 dopM   |PerlIO*|start_glob     |SV* pattern|IO *io
-#if defined(USE_5005THREADS)
-Ap     |struct perl_thread*    |new_struct_thread|struct perl_thread *t
+#if defined(USE_REENTRANT_API)
+Ap     |void   |reentrant_size
+Ap     |void   |reentrant_init
+Ap     |void   |reentrant_free
+Anp    |void*  |reentrant_retry|const char*|...
 #endif
 Ap     |void   |call_atexit    |ATEXIT_t fn|void *ptr
 Apd    |I32    |call_argv      |const char* sub_name|I32 flags|char** argv
 Apd    |I32    |call_method    |const char* methname|I32 flags
 Apd    |I32    |call_pv        |const char* sub_name|I32 flags
 Apd    |I32    |call_sv        |SV* sv|I32 flags
-     |void   |despatch_signals
+Ap     |void   |despatch_signals
 Apd    |SV*    |eval_pv        |const char* p|I32 croak_on_error
 Apd    |I32    |eval_sv        |SV* sv|I32 flags
 Apd    |SV*    |get_sv         |const char* name|I32 create
@@ -572,8 +577,9 @@ Ap  |void   |set_numeric_local
 Ap     |void   |set_numeric_radix
 Ap     |void   |set_numeric_standard
 Apd    |void   |require_pv     |const char* pv
+Apd    |void   |pack_cat       |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist|SV ***next_in_list|U32 flags
 p      |void   |pidgone        |Pid_t pid|int status
-Ap     |void   |pmflag         |U16* pmfl|int ch
+Ap     |void   |pmflag         |U32* pmfl|int ch
 p      |OP*    |pmruntime      |OP* pm|OP* expr|OP* repl
 p      |OP*    |pmtrans        |OP* o|OP* expr|OP* repl
 p      |OP*    |pop_return
@@ -612,8 +618,9 @@ p   |void   |rxres_save     |void** rsp|REGEXP* prx
 #if !defined(HAS_RENAME)
 p      |I32    |same_dirent    |char* a|char* b
 #endif
-Apd    |char*  |savepv         |const char* sv
-Apd    |char*  |savepvn        |const char* sv|I32 len
+Apd    |char*  |savepv         |const char* pv
+Apd    |char*  |savesharedpv   |const char* pv
+Apd    |char*  |savepvn        |const char* pv|I32 len
 Ap     |void   |savestack_grow
 Ap     |void   |save_aelem     |AV* av|I32 idx|SV **sptr
 Ap     |I32    |save_alloc     |I32 size|I32 pad
@@ -628,6 +635,7 @@ p   |void   |save_freeop    |OP* o
 Ap     |void   |save_freepv    |char* pv
 Ap     |void   |save_generic_svref|SV** sptr
 Ap     |void   |save_generic_pvref|char** str
+Ap     |void   |save_shared_pvref|char** str
 Ap     |void   |save_gp        |GV* gv|I32 empty
 Ap     |HV*    |save_hash      |GV* gv
 Ap     |void   |save_helem     |HV* hv|SV *key|SV **sptr
@@ -708,7 +716,7 @@ Apd |I32    |sv_cmp_locale  |SV* sv1|SV* sv2
 #if defined(USE_LOCALE_COLLATE)
 Apd    |char*  |sv_collxfrm    |SV* sv|STRLEN* nxp
 #endif
-Ap     |OP*    |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
+Ap     |OP*    |sv_compile_2op |SV* sv|OP** startp|char* code|PAD** padp
 Apd    |int    |getcwd_sv      |SV* sv
 Apd    |void   |sv_dec         |SV* sv
 Ap     |void   |sv_dump        |SV* sv
@@ -727,6 +735,8 @@ Apd |STRLEN |sv_len         |SV* sv
 Apd    |STRLEN |sv_len_utf8    |SV* sv
 Apd    |void   |sv_magic       |SV* sv|SV* obj|int how|const char* name \
                                |I32 namlen
+Apd    |MAGIC *|sv_magicext    |SV* sv|SV* obj|int how|MGVTBL *vtbl \
+                               | const char* name|I32 namlen   
 Apd    |SV*    |sv_mortalcopy  |SV* oldsv
 Apd    |SV*    |sv_newmortal
 Apd    |SV*    |sv_newref      |SV* sv
@@ -744,7 +754,6 @@ Apd |void   |sv_reset       |char* s|HV* stash
 Afpd   |void   |sv_setpvf      |SV* sv|const char* pat|...
 Ap     |void   |sv_vsetpvf     |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_setiv       |SV* sv|IV num
-Apd    |void   |sv_setpviv     |SV* sv|IV num
 Apd    |void   |sv_setuv       |SV* sv|UV num
 Apd    |void   |sv_setnv       |SV* sv|NV num
 Apd    |SV*    |sv_setref_iv   |SV* rv|const char* classname|IV iv
@@ -785,9 +794,7 @@ Apd |UV     |to_utf8_fold   |U8 *p|U8* ustrp|STRLEN *lenp
 #if defined(UNLINK_ALL_VERSIONS)
 Ap     |I32    |unlnk          |char* f
 #endif
-#if defined(USE_5005THREADS)
-Ap     |void   |unlock_condpair|void* svv
-#endif
+Apd    |I32    |unpack_str     |char *pat|char *patend|char *s|char *strbeg|char *strend|char **new_s|I32 ocnt|U32 flags
 Ap     |void   |unsharepvn     |const char* sv|I32 len|U32 hash
 p      |void   |unshare_hek    |HEK* hek
 p      |void   |utilize        |int aver|I32 floor|OP* version|OP* id|OP* arg
@@ -836,20 +843,11 @@ Anp       |Malloc_t|safesysmalloc |MEM_SIZE nbytes
 Anp    |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
 Anp    |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
 Anp    |Free_t |safesysfree    |Malloc_t where
-#if defined(LEAKTEST)
-Anp    |Malloc_t|safexmalloc   |I32 x|MEM_SIZE size
-Anp    |Malloc_t|safexcalloc   |I32 x|MEM_SIZE elements|MEM_SIZE size
-Anp    |Malloc_t|safexrealloc  |Malloc_t where|MEM_SIZE size
-Anp    |void   |safexfree      |Malloc_t where
-#endif
 #if defined(PERL_GLOBAL_STRUCT)
 Ap     |struct perl_vars *|GetVars
 #endif
 Ap     |int    |runops_standard
 Ap     |int    |runops_debug
-#if defined(USE_5005THREADS)
-Ap     |SV*    |sv_lock        |SV *sv
-#endif
 Afpd   |void   |sv_catpvf_mg   |SV *sv|const char* pat|...
 Ap     |void   |sv_vcatpvf_mg  |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_catpv_mg    |SV *sv|const char *ptr
@@ -858,7 +856,6 @@ Apd |void   |sv_catsv_mg    |SV *dstr|SV *sstr
 Afpd   |void   |sv_setpvf_mg   |SV *sv|const char* pat|...
 Ap     |void   |sv_vsetpvf_mg  |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_setiv_mg    |SV *sv|IV i
-Apd    |void   |sv_setpviv_mg  |SV *sv|IV iv
 Apd    |void   |sv_setuv_mg    |SV *sv|UV u
 Apd    |void   |sv_setnv_mg    |SV *sv|NV num
 Apd    |void   |sv_setpv_mg    |SV *sv|const char *ptr
@@ -866,7 +863,7 @@ Apd |void   |sv_setpvn_mg   |SV *sv|const char *ptr|STRLEN len
 Apd    |void   |sv_setsv_mg    |SV *dstr|SV *sstr
 Apd    |void   |sv_usepvn_mg   |SV *sv|char *ptr|STRLEN len
 Ap     |MGVTBL*|get_vtbl       |int vtbl_id
-     |char*  |pv_display     |SV *dsv|char *pv|STRLEN cur|STRLEN len \
+Ap     |char*  |pv_display     |SV *dsv|char *pv|STRLEN cur|STRLEN len \
                                |STRLEN pvlim
 Afp    |void   |dump_indent    |I32 level|PerlIO *file|const char* pat|...
 Ap     |void   |dump_vindent   |I32 level|PerlIO *file|const char* pat \
@@ -891,9 +888,9 @@ Ap  |void   |reginitcolors
 Apd    |char*  |sv_2pv_nolen   |SV* sv
 Apd    |char*  |sv_2pvutf8_nolen|SV* sv
 Apd    |char*  |sv_2pvbyte_nolen|SV* sv
-Apd    |char*  |sv_pv          |SV *sv
-Apd    |char*  |sv_pvutf8      |SV *sv
-Apd    |char*  |sv_pvbyte      |SV *sv
+Amd    |char*  |sv_pv          |SV *sv
+Amd    |char*  |sv_pvutf8      |SV *sv
+Amd    |char*  |sv_pvbyte      |SV *sv
 Amd    |STRLEN |sv_utf8_upgrade|SV *sv
 ApdM   |bool   |sv_utf8_downgrade|SV *sv|bool fail_ok
 Apd    |void   |sv_utf8_encode |SV *sv
@@ -939,13 +936,16 @@ Ap        |void   |sys_intern_init
 Ap |char * |custom_op_name|OP* op
 Ap |char * |custom_op_desc|OP* op
 
+#if defined(PERL_COPY_ON_WRITE)
+pM     |int    |sv_release_IVX |SV *sv
+#endif
 
-END_EXTERN_C
+Adp    |void   |sv_nosharing   |SV *
+Adp    |void   |sv_nolocking   |SV *
+Adp    |void   |sv_nounlocking |SV *
+Adp    |int    |nothreadhook
 
-#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
-s      |I32    |avhv_index_sv  |SV* sv
-s      |I32    |avhv_index     |AV* av|SV* sv|U32 hash
-#endif
+END_EXTERN_C
 
 #if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
 s      |I32    |do_trans_simple        |SV *sv
@@ -967,8 +967,13 @@ s  |void   |hfreeentries   |HV *hv
 s      |void   |more_he
 s      |HE*    |new_he
 s      |void   |del_he         |HE *p
-s      |HEK*   |save_hek       |const char *str|I32 len|U32 hash
+s      |HEK*   |save_hek_flags |const char *str|I32 len|U32 hash|int flags
 s      |void   |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
+s      |void   |unshare_hek_or_pvn|HEK* hek|const char* sv|I32 len|U32 hash
+s      |HEK*   |share_hek_flags|const char* sv|I32 len|U32 hash|int flags
+s      |SV**   |hv_fetch_flags |HV* tb|const char* key|I32 klen|I32 lval \
+                                |int flags
+s      |void   |hv_notallowed  |int flags|const char *key|I32 klen|const char *msg
 #endif
 
 #if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
@@ -988,18 +993,11 @@ s |OP*    |no_fh_allowed  |OP *o
 s      |OP*    |scalarboolean  |OP *o
 s      |OP*    |too_few_arguments|OP *o|char* name
 s      |OP*    |too_many_arguments|OP *o|char* name
-s      |PADOFFSET|pad_addlex   |SV* name
-s      |PADOFFSET|pad_findlex  |char* name|PADOFFSET newoff|U32 seq \
-                               |CV* startcv|I32 cx_ix|I32 saweval|U32 flags
 s      |OP*    |newDEFSVOP
 s      |OP*    |new_logop      |I32 type|I32 flags|OP **firstp|OP **otherp
 s      |void   |simplify_sort  |OP *o
 s      |bool   |is_handle_constructor  |OP *o|I32 argnum
 s      |char*  |gv_ename       |GV *gv
-#  if defined(DEBUG_CLOSURES)
-s      |void   |cv_dump        |CV *cv
-#  endif
-s      |CV*    |cv_clone2      |CV *proto|CV *outside
 s      |bool   |scalar_mod_type|OP *o|I32 type
 s      |OP *   |my_kid         |OP *o|OP *attrs|OP **imopsp
 s      |OP *   |dup_attrlist   |OP *o
@@ -1007,13 +1005,14 @@ s       |void   |apply_attrs    |HV *stash|SV *target|OP *attrs|bool for_my
 s      |void   |apply_attrs_my |HV *stash|OP *target|OP *attrs|OP **imopsp
 #  if defined(PL_OP_SLAB_ALLOC)
 s      |void*  |Slab_Alloc     |int m|size_t sz
+s      |void   |Slab_Free      |void *op
 #  endif
 #endif
 
 #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
 s      |void   |find_beginning
 s      |void   |forbid_setid   |char *
-s      |void   |incpush        |char *|int|int
+s      |void   |incpush        |char *|int|int|int
 s      |void   |init_interp
 s      |void   |init_ids
 s      |void   |init_lexer
@@ -1039,9 +1038,6 @@ s |void*  |vrun_body      |va_list args
 s      |void*  |vcall_body     |va_list args
 s      |void*  |vcall_list_body|va_list args
 #endif
-#  if defined(USE_5005THREADS)
-s      |struct perl_thread *   |init_main_thread
-#  endif
 #endif
 
 #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
@@ -1054,6 +1050,10 @@ s        |void   |doencodes      |SV* sv|char* s|I32 len
 s      |SV*    |mul128         |SV *sv|U8 m
 s      |SV*    |is_an_int      |char *s|STRLEN l
 s      |int    |div128         |SV *pnum|bool *done
+s      |char * |next_symbol    |char *pat|char *patend
+s      |I32    |find_count     |char **ppat|char *patend|int *star
+s      |char * |group_end      |char *pat|char *patend|char ender
+s      |I32    |measure_struct |char *pat|char *patend
 #endif
 
 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
@@ -1070,13 +1070,12 @@ s       |I32    |dopoptoloop    |I32 startingblock
 s      |I32    |dopoptosub     |I32 startingblock
 s      |I32    |dopoptosub_at  |PERL_CONTEXT* cxstk|I32 startingblock
 s      |void   |save_lines     |AV *array|SV *sv
-s      |OP*    |doeval         |int gimme|OP** startop
+s      |OP*    |doeval         |int gimme|OP** startop|CV* outside|U32 seq
 s      |PerlIO *|doopen_pmc    |const char *name|const char *mode
+s      |bool   |path_is_absolute|char *name
 #endif
 
 #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
-s      |int    |do_maybe_phash |AV *ary|SV **lelem|SV **firstlelem \
-                               |SV **relem|SV **lastrelem
 s      |void   |do_oddball     |HV *hash|SV **relem|SV **firstrelem
 s      |CV*    |get_db_sub     |SV **svp|CV *cv
 s      |SV*    |method_common  |SV* meth|U32* hashp
@@ -1133,8 +1132,7 @@ s |I32    |regmatch       |regnode *prog
 s      |I32    |regrepeat      |regnode *p|I32 max
 s      |I32    |regrepeat_hard |regnode *p|I32 max|I32 *lp
 s      |I32    |regtry         |regexp *prog|char *startpos
-s      |bool   |reginclass     |regnode *n|U8 *p|bool do_utf8sv_is_utf8
-s      |bool   |reginclasslen  |regnode *n|U8 *p|STRLEN *lenp|bool do_utf8sv_is_utf8
+s      |bool   |reginclass     |regnode *n|U8 *p|STRLEN *lenp|bool do_utf8sv_is_utf8
 s      |CHECKPOINT|regcppush   |I32 parenfloor
 s      |char*|regcppop
 s      |char*|regcp_set_to     |I32 ss
@@ -1144,6 +1142,8 @@ s |U8*    |reghop3        |U8 *pos|I32 off|U8 *lim
 s      |U8*    |reghopmaybe    |U8 *pos|I32 off
 s      |U8*    |reghopmaybe3   |U8 *pos|I32 off|U8 *lim
 s      |char*  |find_byclass   |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun
+s      |void   |to_utf8_substr |regexp * prog
+s      |void   |to_byte_substr |regexp * prog
 #endif
 
 #if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
@@ -1155,17 +1155,6 @@ s        |void   |debprof        |OP *o
 s      |SV*    |save_scalar_at |SV **sptr
 #endif
 
-#if defined(USE_ITHREADS)
-Adp    |void        |sharedsv_init
-Adp    |shared_sv*  |sharedsv_new
-Adp    |shared_sv*  |sharedsv_find          |SV* sv
-Adp    |void        |sharedsv_lock          |shared_sv* ssv
-Adp    |void        |sharedsv_unlock        |shared_sv* ssv
-p      |void        |sharedsv_unlock_scope  |shared_sv* ssv
-Adp    |void        |sharedsv_thrcnt_inc    |shared_sv* ssv
-Adp    |void        |sharedsv_thrcnt_dec    |shared_sv* ssv
-#endif
-
 #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 s      |IV     |asIV           |SV* sv
 s      |UV     |asUV           |SV* sv
@@ -1220,8 +1209,12 @@ s      |int    |sv_2iuv_non_preserve   |SV *sv|I32 numtype
 s      |I32    |expect_number  |char** pattern
 #
 #  if defined(USE_ITHREADS)
-s      |SV*    |gv_share       |SV *sv
+s      |SV*    |gv_share       |SV *sv|CLONE_PARAMS *param
 #  endif
+#if defined(PERL_COPY_ON_WRITE)
+sM     |void   |sv_release_COW |SV *sv|char *pvx|STRLEN cur|STRLEN len \
+                               |U32 hash|SV *after
+#endif
 #endif
 
 #if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
@@ -1272,16 +1265,13 @@ s       |char*  |incl_perldb
 s      |I32    |utf16_textfilter|int idx|SV *sv|int maxlen
 s      |I32    |utf16rev_textfilter|int idx|SV *sv|int maxlen
 #endif
-#  if defined(CRIPPLED_CC)
-s      |int    |uni            |I32 f|char *s
-#  endif
 #  if defined(PERL_CR_FILTER)
 s      |I32    |cr_textfilter  |int idx|SV *sv|int maxlen
 #  endif
 #endif
 
 #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
-s      |SV*|isa_lookup |HV *stash|const char *name|int len|int level
+s      |SV*|isa_lookup |HV *stash|const char *name|HV *name_stash|int len|int level
 #endif
 
 #if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
@@ -1291,9 +1281,6 @@ s |char*  |stdize_locale  |char* locs
 #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 s      |COP*   |closest_cop    |COP *cop|OP *o
 s      |SV*    |mess_alloc
-#  if defined(LEAKTEST)
-s      |void   |xstat          |int
-#  endif
 #endif
 
 START_EXTERN_C
@@ -1304,6 +1291,7 @@ Apd       |void   |sv_catsv_flags |SV* dsv|SV* ssv|I32 flags
 Apd    |STRLEN |sv_utf8_upgrade_flags|SV *sv|I32 flags
 Apd    |char*  |sv_pvn_force_flags|SV* sv|STRLEN* lp|I32 flags
 Apd    |char*  |sv_2pv_flags   |SV* sv|STRLEN* lp|I32 flags
+Apd    |void   |sv_copypv      |SV* dsv|SV* ssv
 Ap     |char*  |my_atof2       |const char *s|NV* value
 Apn    |int    |my_socketpair  |int family|int type|int protocol|int fd[2]
 
@@ -1334,5 +1322,40 @@ Ap       |PerlIO *|PerlIO_stdout
 Ap     |PerlIO *|PerlIO_stderr
 #endif /* PERLIO_LAYERS */
 
+p      |void   |deb_stack_all
+#ifdef PERL_IN_DEB_C
+s      |void   |deb_stack_n    |SV** stack_base|I32 stack_min \
+                               |I32 stack_max|I32 mark_min|I32 mark_max
+#endif
+
+pd     |PADLIST*|pad_new       |padnew_flags flags
+pd     |void   |pad_undef      |CV* cv
+pd     |PADOFFSET|pad_add_name |char *name\
+                               |HV* typestash|HV* ourstash \
+                               |bool clone
+pd     |PADOFFSET|pad_add_anon |SV* sv|OPCODE op_type
+pd     |void   |pad_check_dup  |char* name|bool is_our|HV* ourstash
+#ifdef DEBUGGING
+pd     |void   |pad_setsv      |PADOFFSET po|SV* sv
+#endif
+pd     |void   |pad_block_start|int full
+pd     |void   |pad_tidy       |padtidy_type type
+pd     |void   |do_dump_pad    |I32 level|PerlIO *file \
+                               |PADLIST *padlist|int full
+pd     |void   |pad_fixup_inner_anons|PADLIST *padlist|CV *old_cv|CV *new_cv
+
+pd     |void   |pad_push       |PADLIST *padlist|int depth|int has_args
+
+#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
+sd     |PADOFFSET|pad_findlex  |char* name|PADOFFSET newoff|CV* innercv
+#  if defined(DEBUGGING)
+sd     |void   |cv_dump        |CV *cv|char *title
+#  endif
+s      |CV*    |cv_clone2      |CV *proto|CV *outside
+#endif
+pd     |CV*    |find_runcv
+
+
+
 END_EXTERN_C