/* provide binary compatible (but inconsistent) names */
#if defined(PERL_BINCOMPAT_5005)
+# define Perl_call_atexit perl_atexit
+# define Perl_eval_sv perl_eval_sv
+# define Perl_eval_pv perl_eval_pv
# define Perl_call_argv perl_call_argv
# define Perl_call_method perl_call_method
# define Perl_call_pv perl_call_pv
# define deb Perl_deb_nocontext
# define die Perl_die_nocontext
# define form Perl_form_nocontext
+# define load_module Perl_load_module_nocontext
# define mess Perl_mess_nocontext
# define newSVpvf Perl_newSVpvf_nocontext
# define sv_catpvf Perl_sv_catpvf_nocontext
# define Perl_die_nocontext Perl_die
# define Perl_deb_nocontext Perl_deb
# define Perl_form_nocontext Perl_form
+# define Perl_load_module_nocontext Perl_load_module
# define Perl_mess_nocontext Perl_mess
# define Perl_newSVpvf_nocontext Perl_newSVpvf
# define Perl_sv_catpvf_nocontext Perl_sv_catpvf
#undef PERLVARA
#undef PERLVARI
#undef PERLVARIC
-#define PERLVAR(v,t) Perl_##v##_ptr,
+#define PERLVAR(v,t) (void*)Perl_##v##_ptr,
#define PERLVARA(v,n,t) PERLVAR(v,t)
#define PERLVARI(v,t,i) PERLVAR(v,t)
#define PERLVARIC(v,t,i) PERLVAR(v,t)
#endif /* __perlapi_h__ */
EOT
+close CAPIH;
print CAPI <<'EOT';
/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
Perl_warner Perl_vwarner
Perl_die Perl_vdie
Perl_form Perl_vform
+ Perl_load_module Perl_vload_module
Perl_mess Perl_vmess
Perl_deb Perl_vdeb
Perl_newSVpvf Perl_vnewSVpvf
|struct IPerlStdIO* io|struct IPerlLIO* lio \
|struct IPerlDir* d|struct IPerlSock* s \
|struct IPerlProc* p
-#else
-Ajnod |PerlInterpreter* |perl_alloc
#endif
+Ajnod |PerlInterpreter* |perl_alloc
Ajnod |void |perl_construct |PerlInterpreter* interp
Ajnod |void |perl_destruct |PerlInterpreter* interp
Ajnod |void |perl_free |PerlInterpreter* interp
jnp |MEM_SIZE|malloced_size |void *p
#endif
+Ajnp |void* |get_context
+Ajnp |void |set_context |void *thx
+
END_EXTERN_C
/* functions with flag 'n' should come before here */
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
Ap |I32 |block_gimme
p |int |block_start |int full
p |void |boot_core_UNIVERSAL
-p |void |call_list |I32 oldscope|AV* av_list
+Ap |void |call_list |I32 oldscope|AV* av_list
p |bool |cando |Mode_t mode|Uid_t effective|Stat_t* statbufp
Ap |U32 |cast_ulong |NV f
Ap |I32 |cast_i32 |NV f
Ap |I32 |my_chsize |int fd|Off_t length
#endif
#if defined(USE_THREADS)
-p |MAGIC* |condpair_magic |SV *sv
+Ap |MAGIC* |condpair_magic |SV *sv
#endif
p |OP* |convert |I32 optype|I32 flags|OP* o
Afprd |void |croak |const char* pat|...
Afnp |OP* |die_nocontext |const char* pat|...
Afnp |void |deb_nocontext |const char* pat|...
Afnp |char* |form_nocontext |const char* pat|...
+Afnp |void |load_module_nocontext|U32 flags|SV* name|SV* ver|...
Afnp |SV* |mess_nocontext |const char* pat|...
Afnp |void |warn_nocontext |const char* pat|...
Afnp |void |warner_nocontext|U32 err|const char* pat|...
#endif
p |void |cv_ckproto |CV* cv|GV* gv|char* p
p |CV* |cv_clone |CV* proto
-p |SV* |cv_const_sv |CV* cv
+Ap |SV* |cv_const_sv |CV* cv
p |SV* |op_const_sv |OP* o|CV* cv
-p |void |cv_undef |CV* cv
+Ap |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
Ap |char* |delimcpy |char* to|char* toend|char* from \
|char* fromend|int delim|I32* retlen
p |void |deprecate |char* s
-fp |OP* |die |const char* pat|...
+Afp |OP* |die |const char* pat|...
p |OP* |vdie |const char* pat|va_list* args
p |OP* |die_where |char* message|STRLEN msglen
-p |void |dounwind |I32 cxix
+Ap |void |dounwind |I32 cxix
p |bool |do_aexec |SV* really|SV** mark|SV** sp
p |bool |do_aexec5 |SV* really|SV** mark|SV** sp|int fd|int flag
Ap |int |do_binmode |PerlIO *fp|int iotype|int flag
p |void |do_chop |SV* asv|SV* sv
-p |bool |do_close |GV* gv|bool not_implicit
+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 |I32 |ibcmp_locale |const char* a|const char* b|I32 len
p |bool |ingroup |Gid_t testgid|Uid_t effective
p |void |init_debugger
-p |void |init_stacks
+Ap |void |init_stacks
p |U32 |intro_my
Ap |char* |instr |const char* big|const char* little
p |bool |io_close |IO* io|bool not_implicit
Ap |U32 |to_uni_upper_lc|U32 c
Ap |U32 |to_uni_title_lc|U32 c
Ap |U32 |to_uni_lower_lc|U32 c
+Ap |int |is_utf8_char |U8 *p
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_mark |U8 *p
p |OP* |jmaybe |OP* arg
p |I32 |keyword |char* d|I32 len
-p |void |leave_scope |I32 base
+Ap |void |leave_scope |I32 base
p |void |lex_end
p |void |lex_start |SV* line
p |OP* |linklist |OP* o
p |OP* |list |OP* o
p |OP* |listkids |OP* o
+Afp |void |load_module|U32 flags|SV* name|SV* ver|...
+Ap |void |vload_module|U32 flags|SV* name|SV* ver|va_list* args
p |OP* |localize |OP* arg|I32 lexical
Apd |I32 |looks_like_number|SV* sv
p |int |magic_clearenv |SV* sv|MAGIC* mg
Apd |int |mg_set |SV* sv
Ap |I32 |mg_size |SV* sv
p |OP* |mod |OP* o|I32 type
-p |char* |moreswitches |char* s
+p |int |mode_from_discipline|SV* discp
+Ap |char* |moreswitches |char* s
p |OP* |my |OP* o
Ap |NV |my_atof |const char *s
#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
Ap |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \
|I32 whileline|OP* expr|OP* block|OP* cont
-p |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
+Ap |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
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
-p |void |op_free |OP* arg
+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 |OP* |oopsAV |OP* o
p |OP* |oopsHV |OP* o
p |void |pad_leavemy |I32 fill
-p |SV* |pad_sv |PADOFFSET po
+Ap |SV* |pad_sv |PADOFFSET po
p |void |pad_free |PADOFFSET po
p |void |pad_reset
p |void |pad_swipe |PADOFFSET po
Apd |AV* |get_av |const char* name|I32 create
Apd |HV* |get_hv |const char* name|I32 create
Apd |CV* |get_cv |const char* name|I32 create
-p |int |init_i18nl10n |int printwarn
-p |int |init_i18nl14n |int printwarn
+Ap |int |init_i18nl10n |int printwarn
+Ap |int |init_i18nl14n |int printwarn
Ap |void |new_collate |const char* newcoll
Ap |void |new_ctype |const char* newctype
Ap |void |new_numeric |const char* newcoll
Ap |void |set_numeric_standard
Apd |void |require_pv |const char* pv
p |void |pidgone |Pid_t pid|int status
-p |void |pmflag |U16* pmfl|int ch
+Ap |void |pmflag |U16* 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
p |OP* |ref |OP* o|I32 type
p |OP* |refkids |OP* o|I32 type
Ap |void |regdump |regexp* r
-p |I32 |pregexec |regexp* prog|char* stringarg \
+Ap |I32 |pregexec |regexp* prog|char* stringarg \
|char* strend|char* strbeg|I32 minend \
|SV* screamer|U32 nosave
-p |void |pregfree |struct regexp* r
-p |regexp*|pregcomp |char* exp|char* xend|PMOP* pm
-p |char* |re_intuit_start|regexp* prog|SV* sv|char* strpos \
+Ap |void |pregfree |struct regexp* r
+Ap |regexp*|pregcomp |char* exp|char* xend|PMOP* pm
+Ap |char* |re_intuit_start|regexp* prog|SV* sv|char* strpos \
|char* strend|U32 flags \
|struct re_scream_pos_data_s *data
-p |SV* |re_intuit_string|regexp* prog
-p |I32 |regexec_flags |regexp* prog|char* stringarg \
+Ap |SV* |re_intuit_string|regexp* prog
+Ap |I32 |regexec_flags |regexp* prog|char* stringarg \
|char* strend|char* strbeg|I32 minend \
|SV* screamer|void* data|U32 flags
-p |regnode*|regnext |regnode* p
+Ap |regnode*|regnext |regnode* p
p |void |regprop |SV* sv|regnode* o
-p |void |repeatcpy |char* to|const char* from|I32 len|I32 count
+Ap |void |repeatcpy |char* to|const char* from|I32 len|I32 count
Ap |char* |rninstr |const char* big|const char* bigend \
|const char* little|const char* lend
p |Sighandler_t|rsignal |int i|Sighandler_t t
p |OP* |scalarkids |OP* o
p |OP* |scalarseq |OP* o
p |OP* |scalarvoid |OP* o
-p |NV |scan_bin |char* start|I32 len|I32* retlen
-p |NV |scan_hex |char* start|I32 len|I32* retlen
-p |char* |scan_num |char* s
-p |NV |scan_oct |char* start|I32 len|I32* retlen
+Ap |NV |scan_bin |char* start|I32 len|I32* retlen
+Ap |NV |scan_hex |char* start|I32 len|I32* retlen
+Ap |char* |scan_num |char* s
+Ap |NV |scan_oct |char* start|I32 len|I32* retlen
p |OP* |scope |OP* o
-p |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \
+Ap |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \
|I32 end_shift|I32 *state|I32 last
#if !defined(VMS)
p |I32 |setenv_getix |char* nam
#endif
p |void |setdefout |GV* gv
-p |char* |sharepvn |const char* sv|I32 len|U32 hash
+Ap |char* |sharepvn |const char* sv|I32 len|U32 hash
p |HEK* |share_hek |const char* sv|I32 len|U32 hash
np |Signal_t |sighandler |int sig
Ap |SV** |stack_grow |SV** sp|SV**p|int n
#if defined(USE_LOCALE_COLLATE)
Ap |char* |sv_collxfrm |SV* sv|STRLEN* nxp
#endif
-p |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
+Ap |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
Apd |void |sv_dec |SV* sv
Ap |void |sv_dump |SV* sv
Apd |bool |sv_derived_from|SV* sv|const char* name
Apd |I32 |sv_eq |SV* sv1|SV* sv2
Ap |void |sv_free |SV* sv
p |void |sv_free_arenas
-p |char* |sv_gets |SV* sv|PerlIO* fp|I32 append
+Ap |char* |sv_gets |SV* sv|PerlIO* fp|I32 append
Apd |char* |sv_grow |SV* sv|STRLEN newlen
Apd |void |sv_inc |SV* sv
Apd |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \
Apd |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \
|va_list* args|SV** svargs|I32 svmax \
|bool *maybe_tainted
-p |SV* |swash_init |char* pkg|char* name|SV* listsv \
+Ap |NV |str_to_version |SV *sv
+Ap |SV* |swash_init |char* pkg|char* name|SV* listsv \
|I32 minbits|I32 none
-p |UV |swash_fetch |SV *sv|U8 *ptr
+Ap |UV |swash_fetch |SV *sv|U8 *ptr
Ap |void |taint_env
Ap |void |taint_proper |const char* f|const char* s
Ap |UV |to_utf8_lower |U8 *p
Ap |I32 |unlnk |char* f
#endif
#if defined(USE_THREADS)
-p |void |unlock_condpair|void* svv
+Ap |void |unlock_condpair|void* svv
#endif
-p |void |unsharepvn |const char* sv|I32 len|U32 hash
+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
Ap |U8* |utf16_to_utf8 |U16* p|U8 *d|I32 bytelen
p |int |yywarn |char* s
#if defined(MYMALLOC)
Ap |void |dump_mstats |char* s
+Ap |int |get_mstats |perl_mstats_t *buf|int buflen|int level
#endif
Anp |Malloc_t|safesysmalloc |MEM_SIZE nbytes
Anp |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
Ap |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \
|I32 maxnest|bool dumpops|STRLEN pvlim
Ap |void |magic_dump |MAGIC *mg
+#if defined(PERL_FLEXIBLE_EXCEPTIONS)
Ap |void* |default_protect|volatile JMPENV *je|int *excpt \
|protect_body_t body|...
Ap |void* |vdefault_protect|volatile JMPENV *je|int *excpt \
|protect_body_t body|va_list *args
+#endif
Ap |void |reginitcolors
Ap |char* |sv_2pv_nolen |SV* sv
Ap |char* |sv_2pvutf8_nolen|SV* sv
Ap |char* |sv_pv |SV *sv
Ap |char* |sv_pvutf8 |SV *sv
Ap |char* |sv_pvbyte |SV *sv
+Ap |void |sv_utf8_upgrade|SV *sv
+Ap |bool |sv_utf8_downgrade|SV *sv|bool fail_ok
+Ap |void |sv_utf8_encode |SV *sv
+Ap |bool |sv_utf8_decode |SV *sv
Ap |void |sv_force_normal|SV *sv
Ap |void |tmps_grow |I32 n
Ap |SV* |sv_rvweaken |SV *sv
#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
#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
s |void |find_beginning
s |void |forbid_setid |char *
-s |void |incpush |char *|int
+s |void |incpush |char *|int|int
s |void |init_interp
s |void |init_ids
s |void |init_lexer
# if defined(IAMSUID)
s |int |fd_on_nosuid_fs|int fd
# endif
-s |void* |parse_body |va_list args
-s |void* |run_body |va_list args
-s |void* |call_body |va_list args
-s |void |call_xbody |OP *myop|int is_eval
-s |void* |call_list_body |va_list args
+s |void* |parse_body |char **env|XSINIT_t xsinit
+s |void* |run_body |I32 oldscope
+s |void |call_body |OP *myop|int is_eval
+s |void* |call_list_body |CV *cv
+#if defined(PERL_FLEXIBLE_EXCEPTIONS)
+s |void* |vparse_body |va_list args
+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_THREADS)
s |struct perl_thread * |init_main_thread
# endif
#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
s |OP* |docatch |OP *o
-s |void* |docatch_body |va_list args
+s |void* |docatch_body
+#if defined(PERL_FLEXIBLE_EXCEPTIONS)
+s |void* |vdocatch_body |va_list args
+#endif
s |OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit
s |void |doparseform |SV *sv
s |I32 |dopoptoeval |I32 startingblock
#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
#endif
s |void |sv_unglob |SV* sv
s |void |not_a_number |SV *sv
s |void |visit |SVFUNC_t f
-# if defined(PURIFY)
-s |void |reg_add |SV *sv
-s |void |reg_remove |SV *sv
-# else
-ns |void* |my_safemalloc |MEM_SIZE size
-# endif
s |void |sv_add_backref |SV *tsv|SV *sv
s |void |sv_del_backref |SV *sv
# if defined(DEBUGGING)
s |int |ao |int toketype
s |void |depcom
s |char* |incl_perldb
+#if 0
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