VIRTUAL I32 cxinc _((void));
void deb _((const char* pat,...)) __attribute__((format(printf,1,2)));
void deb_growlevel _((void));
-I32 debop _((OP* o));
I32 debstackptrs _((void));
#ifdef DEBUGGING
void debprofdump _((void));
+I32 debop _((OP* o));
#endif
I32 debstack _((void));
VIRTUAL char* delimcpy _((char* to, char* toend, char* from, char* fromend,
VIRTUAL void do_vop _((I32 optype, SV* sv, SV* left, SV* right));
VIRTUAL I32 dowantarray _((void));
VIRTUAL void dump_all _((void));
-VIRTUAL void dump_eval _((void));
+#ifdef DEBUGGING
+void dump_eval _((void));
+#endif
#ifdef DUMP_FDS /* See util.c */
int dump_fds _((char* s));
#endif
VIRTUAL int magic_setuvar _((SV* sv, MAGIC* mg));
VIRTUAL int magic_setvec _((SV* sv, MAGIC* mg));
VIRTUAL int magic_set_all_env _((SV* sv, MAGIC* mg));
+VIRTUAL U32 magic_sizepack _((SV* sv, MAGIC* mg));
VIRTUAL int magic_wipepack _((SV* sv, MAGIC* mg));
VIRTUAL void magicname _((char* sym, char* name, I32 namlen));
int main _((int argc, char** argv, char** env));
VIRTUAL MAGIC* mg_find _((SV* sv, int type));
VIRTUAL int mg_free _((SV* sv));
VIRTUAL int mg_get _((SV* sv));
-VIRTUAL U32 mg_len _((SV* sv));
+VIRTUAL U32 mg_length _((SV* sv));
VIRTUAL void mg_magical _((SV* sv));
VIRTUAL int mg_set _((SV* sv));
+VIRTUAL I32 mg_size _((SV* sv));
VIRTUAL OP* mod _((OP* o, I32 type));
VIRTUAL char* moreswitches _((char* s));
VIRTUAL OP* my _((OP* o));
VIRTUAL OP* newPMOP _((I32 type, I32 flags));
VIRTUAL OP* newPVOP _((I32 type, I32 flags, char* pv));
VIRTUAL SV* newRV _((SV* ref));
+#if !defined(__GNUC__) && (defined(CRIPPLED_CC) || defined(USE_THREADS) || defined(PERL_OBJECT))
VIRTUAL SV* newRV_noinc _((SV *));
+#endif
#ifdef LEAKTEST
VIRTUAL SV* newSV _((I32 x, STRLEN len));
#else
VIRTUAL regexp* pregcomp _((char* exp, char* xend, PMOP* pm));
VIRTUAL OP* ref _((OP* o, I32 type));
VIRTUAL OP* refkids _((OP* o, I32 type));
-VIRTUAL void regdump _((regexp* r));
+#ifdef DEBUGGING
+void regdump _((regexp* r));
+#endif
VIRTUAL I32 pregexec _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave));
VIRTUAL I32 regexec_flags _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags));
VIRTUAL void pregfree _((struct regexp* r));
VIRTUAL regnode*regnext _((regnode* p));
-VIRTUAL void regprop _((SV* sv, regnode* o));
+#ifdef DEBUGGING
+void regprop _((SV* sv, regnode* o));
+#endif
VIRTUAL void repeatcpy _((char* to, char* from, I32 len, I32 count));
VIRTUAL char* rninstr _((char* big, char* bigend, char* little, char* lend));
VIRTUAL Sighandler_t rsignal _((int, Sighandler_t));
VIRTUAL void save_delete _((HV* hv, char* key, I32 klen));
#ifndef titan /* TitanOS cc can't handle this */
#ifdef PERL_OBJECT
-VIRTUAL void save_destructor _((void (*f)(void*, void*), void* p));
+typedef void (CPerlObj::*DESTRUCTORFUNC) _((void*));
+VIRTUAL void save_destructor _((DESTRUCTORFUNC f, void* p));
#else
void save_destructor _((void (*f)(void*), void* p));
#endif
#ifndef VMS
VIRTUAL I32 setenv_getix _((char* nam));
#endif
-VIRTUAL int magic_setdefelem _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setenv _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setfm _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setisa _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setglob _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setmglob _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setnkeys _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setpack _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setpos _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setsig _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setsubstr _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_settaint _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setuvar _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_setvec _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_set_all_env _((SV* sv, MAGIC* mg));
-VIRTUAL U32 magic_sizepack _((SV* sv, MAGIC* mg));
-VIRTUAL int magic_wipepack _((SV* sv, MAGIC* mg));
-VIRTUAL void magicname _((char* sym, char* name, I32 namlen));
-VIRTUAL int main _((int argc, char** argv, char** env));
-VIRTUAL void markstack_grow _((void));
+VIRTUAL void setdefout _((GV* gv));
+VIRTUAL char* sharepvn _((char* sv, I32 len, U32 hash));
+VIRTUAL HEK* share_hek _((char* sv, I32 len, U32 hash));
+VIRTUAL Signal_t sighandler _((int sig));
+VIRTUAL SV** stack_grow _((SV** sp, SV**p, int n));
+VIRTUAL I32 start_subparse _((I32 is_format, U32 flags));
+VIRTUAL void sub_crush_depth _((CV* cv));
+VIRTUAL bool sv_2bool _((SV* sv));
+VIRTUAL CV* sv_2cv _((SV* sv, HV** st, GV** gvp, I32 lref));
+VIRTUAL IO* sv_2io _((SV* sv));
+VIRTUAL IV sv_2iv _((SV* sv));
+VIRTUAL SV* sv_2mortal _((SV* sv));
+VIRTUAL double sv_2nv _((SV* sv));
+VIRTUAL char* sv_2pv _((SV* sv, STRLEN* lp));
+VIRTUAL UV sv_2uv _((SV* sv));
+VIRTUAL IV sv_iv _((SV* sv));
+VIRTUAL UV sv_uv _((SV* sv));
+VIRTUAL double sv_nv _((SV* sv));
+VIRTUAL char * sv_pvn _((SV *, STRLEN *));
+VIRTUAL I32 sv_true _((SV *));
+VIRTUAL void sv_add_arena _((char* ptr, U32 size, U32 flags));
+VIRTUAL int sv_backoff _((SV* sv));
+VIRTUAL SV* sv_bless _((SV* sv, HV* stash));
+VIRTUAL void sv_catpvf _((SV* sv, const char* pat, ...));
+VIRTUAL void sv_catpv _((SV* sv, char* ptr));
+VIRTUAL void sv_catpvn _((SV* sv, char* ptr, STRLEN len));
+VIRTUAL void sv_catsv _((SV* dsv, SV* ssv));
+VIRTUAL void sv_chop _((SV* sv, char* ptr));
+VIRTUAL void sv_clean_all _((void));
+VIRTUAL void sv_clean_objs _((void));
+VIRTUAL void sv_clear _((SV* sv));
+VIRTUAL I32 sv_cmp _((SV* sv1, SV* sv2));
+VIRTUAL I32 sv_cmp_locale _((SV* sv1, SV* sv2));
#ifdef USE_LOCALE_COLLATE
-VIRTUAL char* mem_collxfrm _((const char* s, STRLEN len, STRLEN* xlen));
+VIRTUAL char* sv_collxfrm _((SV* sv, STRLEN* nxp));
#endif
-VIRTUAL char* mess _((const char* pat, va_list* args));
-VIRTUAL int mg_clear _((SV* sv));
-VIRTUAL int mg_copy _((SV* , SV* , char* , I32));
-VIRTUAL MAGIC* mg_find _((SV* sv, int type));
-VIRTUAL int mg_free _((SV* sv));
-VIRTUAL int mg_get _((SV* sv));
-VIRTUAL U32 mg_len _((SV* sv));
-VIRTUAL void mg_magical _((SV* sv));
-VIRTUAL int mg_set _((SV* sv));
-VIRTUAL I32 mg_size _((SV* sv));
-VIRTUAL OP* mod _((OP* o, I32 type));
-VIRTUAL char* moreswitches _((char* s));
-VIRTUAL OP* my _((OP* o));
-#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
-VIRTUAL char* my_bcopy _((char* from, char* to, I32 len));
+VIRTUAL OP* sv_compile_2op _((SV* sv, OP** startp, char* code, AV** avp));
+VIRTUAL void sv_dec _((SV* sv));
+VIRTUAL void sv_dump _((SV* sv));
+VIRTUAL bool sv_derived_from _((SV* sv, char* name));
+VIRTUAL I32 sv_eq _((SV* sv1, SV* sv2));
+VIRTUAL void sv_free _((SV* sv));
+VIRTUAL void sv_free_arenas _((void));
+VIRTUAL char* sv_gets _((SV* sv, PerlIO* fp, I32 append));
+#ifndef DOSISH
+VIRTUAL char* sv_grow _((SV* sv, I32 newlen));
+#else
+VIRTUAL char* sv_grow _((SV* sv, unsigned long newlen));
#endif
VIRTUAL void sv_inc _((SV* sv));
VIRTUAL void sv_insert _((SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen));
VIRTUAL SV* sv_mortalcopy _((SV* oldsv));
VIRTUAL SV* sv_newmortal _((void));
VIRTUAL SV* sv_newref _((SV* sv));
-VIRTUAL char* sv_peek _((SV* sv));
+#ifdef DEBUGGING
+char* sv_peek _((SV* sv));
+#endif
VIRTUAL char* sv_pvn_force _((SV* sv, STRLEN* lp));
VIRTUAL char* sv_reftype _((SV* sv, int ob));
VIRTUAL void sv_replace _((SV* sv, SV* nsv));
#ifdef USE_THREADS
VIRTUAL void unlock_condpair _((void* svv));
#endif
-VIRTUAL void my_unexec _((void));
-VIRTUAL OP* newANONLIST _((OP* o));
-VIRTUAL OP* newANONHASH _((OP* o));
-VIRTUAL OP* newANONSUB _((I32 floor, OP* proto, OP* block));
-VIRTUAL OP* newASSIGNOP _((I32 flags, OP* left, I32 optype, OP* right));
-VIRTUAL OP* newCONDOP _((I32 flags, OP* expr, OP* trueop, OP* falseop));
-VIRTUAL void newFORM _((I32 floor, OP* o, OP* block));
-VIRTUAL OP* newFOROP _((I32 flags, char* label, line_t forline, OP* scalar, OP* expr, OP*block, OP*cont));
-VIRTUAL OP* newLOGOP _((I32 optype, I32 flags, OP* left, OP* right));
-VIRTUAL OP* newLOOPEX _((I32 type, OP* label));
-VIRTUAL OP* newLOOPOP _((I32 flags, I32 debuggable, OP* expr, OP* block));
-VIRTUAL OP* newNULLLIST _((void));
-VIRTUAL OP* newOP _((I32 optype, I32 flags));
-VIRTUAL void newPROG _((OP* o));
-VIRTUAL OP* newRANGE _((I32 flags, OP* left, OP* right));
-VIRTUAL OP* newSLICEOP _((I32 flags, OP* subscript, OP* list));
-VIRTUAL OP* newSTATEOP _((I32 flags, char* label, OP* o));
-VIRTUAL CV* newSUB _((I32 floor, OP* o, OP* proto, OP* block));
-VIRTUAL CV* newXS _((char* name, void (*subaddr)(CV* cv), char* filename));
-VIRTUAL AV* newAV _((void));
-VIRTUAL OP* newAVREF _((OP* o));
-VIRTUAL OP* newBINOP _((I32 type, I32 flags, OP* first, OP* last));
-VIRTUAL OP* newCVREF _((I32 flags, OP* o));
-VIRTUAL OP* newGVOP _((I32 type, I32 flags, GV* gv));
-VIRTUAL GV* newGVgen _((char* pack));
-VIRTUAL OP* newGVREF _((I32 type, OP* o));
-VIRTUAL OP* newHVREF _((OP* o));
-VIRTUAL HV* newHV _((void));
-VIRTUAL IO* newIO _((void));
-VIRTUAL OP* newLISTOP _((I32 type, I32 flags, OP* first, OP* last));
-VIRTUAL OP* newPMOP _((I32 type, I32 flags));
-VIRTUAL OP* newPVOP _((I32 type, I32 flags, char* pv));
-VIRTUAL SV* newRV _((SV* ref));
-#if !defined(__GNUC__) && (defined(CRIPPLED_CC) || defined(USE_THREADS))
-VIRTUAL SV* newRV_noinc _((SV *));
+VIRTUAL void unsharepvn _((char* sv, I32 len, U32 hash));
+VIRTUAL void unshare_hek _((HEK* hek));
+VIRTUAL void utilize _((int aver, I32 floor, OP* version, OP* id, OP* arg));
+VIRTUAL void vivify_defelem _((SV* sv));
+VIRTUAL void vivify_ref _((SV* sv, U32 to_what));
+VIRTUAL I32 wait4pid _((int pid, int* statusp, int flags));
+VIRTUAL void warn _((const char* pat,...));
+#ifdef DEBUGGING
+void watch _((char** addr));
#endif
+VIRTUAL I32 whichsig _((char* sig));
+VIRTUAL int yyerror _((char* s));
+VIRTUAL int yylex _((void));
+VIRTUAL int yyparse _((void));
+VIRTUAL int yywarn _((char* s));
+
+#ifndef MYMALLOC
+VIRTUAL Malloc_t safemalloc _((MEM_SIZE nbytes));
+VIRTUAL Malloc_t safecalloc _((MEM_SIZE elements, MEM_SIZE size));
+VIRTUAL Malloc_t saferealloc _((Malloc_t where, MEM_SIZE nbytes));
+VIRTUAL Free_t safefree _((Malloc_t where));
+#endif
+
#ifdef LEAKTEST
VIRTUAL Malloc_t safexmalloc _((I32 x, MEM_SIZE size));
VIRTUAL Malloc_t safexcalloc _((I32 x, MEM_SIZE elements, MEM_SIZE size));
void sv_mortalgrow _((void));
void sv_unglob _((SV* sv));
void sv_check_thinkfirst _((SV *sv));
+
+SV *newSVpvn _((char *s, STRLEN len));
+
+void sv_catpv_mg _((SV *sv, char *ptr));
+void sv_catpvf_mg _((SV *sv, const char* pat, ...));
+void sv_catpvn_mg _((SV *sv, char *ptr, STRLEN len));
+void sv_catsv_mg _((SV *dstr, SV *sstr));
+void sv_setiv_mg _((SV *sv, IV i));
+void sv_setnv_mg _((SV *sv, double num));
+void sv_setsv_mg _((SV *dstr, SV *sstr));
+void sv_setuv_mg _((SV *sv, UV u));
+void sv_setpv_mg _((SV *sv, const char *ptr));
+void sv_setpvf_mg _((SV *sv, const char* pat, ...));
+void sv_setpviv_mg _((SV *sv, IV iv));
+void sv_setpvn_mg _((SV *sv, const char *ptr, STRLEN len));
+void sv_usepvn_mg _((SV *sv, char *ptr, STRLEN len));
+
void do_report_used _((SV *sv));
void do_clean_objs _((SV *sv));
void do_clean_named_objs _((SV *sv));
void do_clean_all _((SV *sv));
void not_a_number _((SV *sv));
+void* my_safemalloc _((MEM_SIZE size));
typedef void (CPerlObj::*SVFUNC) _((SV*));
void visit _((SVFUNC f));
+typedef I32 (CPerlObj::*SVCOMPARE) _((SV*, SV*));
+void qsortsv _((SV ** array, size_t num_elts, SVCOMPARE f));
+I32 sortcv _((SV *a, SV *b));
void save_magic _((MGS *mgs, SV *sv));
int magic_methpack _((SV *sv, MAGIC *mg, char *meth));
+int magic_methcall _((MAGIC *mg, char *meth, I32 flags, int n, SV *val));
OP * doform _((CV *cv, GV *gv, OP *retop));
void doencodes _((SV* sv, char* s, I32 len));
SV* refto _((SV* sv));
void regtail _((regnode *, regnode *));
char* nextchar _((void));
regnode *dumpuntil _((regnode *start, regnode *node, regnode *last, SV* sv, I32 l));
-void debprof _((OP *o));
void scan_commit _((scan_data_t *data));
I32 study_chunk _((regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags));
I32 add_data _((I32 n, char *s));
void dump _((char *pat,...));
#ifdef WIN32
int do_aspawn _((void *vreally, void **vmark, void **vsp));
+void BootDynaLoader(void);
#endif
#ifdef DEBUGGING
void del_sv _((SV *p));
+void debprof _((OP *o));
#endif
#define PPDEF(s) OP* CPerlObj::s _((ARGSproto));
void unwind_handler_stack _((void *p));
void restore_magic _((void *p));
void restore_rsfp _((void *f));
+void restore_expect _((void *e));
+void restore_lex_expect _((void *e));
void yydestruct _((void *ptr));
-int sortcv _((const void *, const void *));
-int sortcmp _((const void *, const void *));
-int sortcmp_locale _((const void *, const void *));
VIRTUAL int fprintf _((PerlIO *, const char *, ...));
#ifdef WIN32