VIRTUAL void boot_core_UNIVERSAL _((void));
VIRTUAL void call_list _((I32 oldscope, AV* av_list));
VIRTUAL I32 cando _((I32 bit, I32 effective, Stat_t* statbufp));
-#ifndef CASTNEGFLOAT
VIRTUAL U32 cast_ulong _((double f));
-#endif
+VIRTUAL I32 cast_i32 _((double f));
+VIRTUAL IV cast_iv _((double f));
+VIRTUAL UV cast_uv _((double f));
#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
VIRTUAL I32 my_chsize _((int fd, Off_t length));
#endif
-VIRTUAL OP* ck_gvconst _((OP* o));
-VIRTUAL OP* ck_retarget _((OP* o));
+
#ifdef USE_THREADS
VIRTUAL MAGIC * condpair_magic _((SV *sv));
#endif
VIRTUAL void dump_fds _((char* s));
#endif
VIRTUAL void dump_form _((GV* gv));
-VIRTUAL void dump_gv _((GV* gv));
+VIRTUAL void gv_dump _((GV* gv));
#ifdef MYMALLOC
VIRTUAL void dump_mstats _((char* s));
#endif
-VIRTUAL void dump_op _((OP* arg));
-VIRTUAL void dump_pm _((PMOP* pm));
+VIRTUAL void op_dump _((OP* arg));
+VIRTUAL void pmop_dump _((PMOP* pm));
VIRTUAL void dump_packsubs _((HV* stash));
VIRTUAL void dump_sub _((GV* gv));
VIRTUAL void fbm_compile _((SV* sv, U32 flags));
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* newSLICEOP _((I32 flags, OP* subscript, OP* listop));
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 _CPERLproto), char* filename));
VIRTUAL void save_freesv _((SV* sv));
VIRTUAL void save_freeop _((OP* o));
VIRTUAL void save_freepv _((char* pv));
+VIRTUAL void save_generic_svref _((SV** sptr));
VIRTUAL void save_gp _((GV* gv, I32 empty));
VIRTUAL HV* save_hash _((GV* gv));
VIRTUAL void save_helem _((HV* hv, SV *key, SV **sptr));
VIRTUAL OP* scalarkids _((OP* o));
VIRTUAL OP* scalarseq _((OP* o));
VIRTUAL OP* scalarvoid _((OP* o));
+VIRTUAL UV scan_bin _((char* start, I32 len, I32* retlen));
VIRTUAL UV scan_hex _((char* start, I32 len, I32* retlen));
VIRTUAL char* scan_num _((char* s));
VIRTUAL UV scan_oct _((char* start, I32 len, I32* retlen));
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 char* sv_grow _((SV* sv, STRLEN newlen));
VIRTUAL void sv_inc _((SV* sv));
VIRTUAL void sv_insert _((SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen));
VIRTUAL int sv_isa _((SV* sv, char* name));
VIRTUAL void watch _((char** addr));
VIRTUAL I32 whichsig _((char* sig));
VIRTUAL int yyerror _((char* s));
-VIRTUAL int yylex _((void));
+#ifdef USE_PURE_BISON
+# define PERL_YYLEX_PARAM_DECL YYSTYPE *lvalp, int *lcharp
+#else
+# define PERL_YYLEX_PARAM_DECL void
+#endif
+VIRTUAL int yylex _((PERL_YYLEX_PARAM_DECL));
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
+VIRTUAL Malloc_t safesysmalloc _((MEM_SIZE nbytes));
+VIRTUAL Malloc_t safesyscalloc _((MEM_SIZE elements, MEM_SIZE size));
+VIRTUAL Malloc_t safesysrealloc _((Malloc_t where, MEM_SIZE nbytes));
+VIRTUAL Free_t safesysfree _((Malloc_t where));
#ifdef LEAKTEST
VIRTUAL Malloc_t safexmalloc _((I32 x, MEM_SIZE size));
I32 sortcv _((SV *a, SV *b));
void save_magic _((I32 mgs_ix, SV *sv));
int magic_methpack _((SV *sv, MAGIC *mg, char *meth));
+int magic_methcall _((SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val));
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));
I32 dopoptosub_at _((PERL_CONTEXT* cxstk, I32 startingblock));
void save_lines _((AV *array, SV *sv));
OP *doeval _((int gimme, OP** startop));
+I32 sv_ncmp _((SV *a, SV *b));
+I32 sv_i_ncmp _((SV *a, SV *b));
+I32 amagic_ncmp _((SV *a, SV *b));
+I32 amagic_i_ncmp _((SV *a, SV *b));
+I32 amagic_cmp _((SV *str1, SV *str2));
+I32 amagic_cmp_locale _((SV *str1, SV *str2));
+
SV *mul128 _((SV *sv, U8 m));
SV *is_an_int _((char *s, STRLEN l));
int div128 _((SV *pnum, bool *done));
I32 study_chunk _((regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags));
I32 add_data _((I32 n, char *s));
void re_croak2 _((const char* pat1,const char* pat2,...)) __attribute__((noreturn));
+char* regpposixcc _((I32 value));
+void clear_re _((void *r));
I32 regmatch _((regnode *prog));
I32 regrepeat _((regnode *p, I32 max));
I32 regrepeat_hard _((regnode *p, I32 max, I32 *lp));
char * regcppop _((void));
char * regcp_set_to _((I32 ss));
void cache_re _((regexp *prog));
+void restore_pos _((void *arg));
U8 * reghop _((U8 *pos, I32 off));
U8 * reghopmaybe _((U8 *pos, I32 off));
void dump _((char *pat,...));
void *bset_obj_store _((void *obj, I32 ix));
OP *new_logop _((I32 type, I32 flags, OP **firstp, OP **otherp));
+void simplify_sort _((OP *o));
I32 do_trans_CC_simple _((SV *sv));
I32 do_trans_CC_count _((SV *sv));
I32 do_trans_UC_trivial _((SV *sv));
I32 do_trans_CU_trivial _((SV *sv));
-#define PPDEF(s) OP* CPerlObj::s _((ARGSproto));
+#undef PERL_CKDEF
+#undef PERL_PPDEF
+#define PERL_CKDEF(s) OP* s _((OP *o));
+#define PERL_PPDEF(s) OP* s _((ARGSproto));
public:
#include "pp_proto.h"
-OP * ck_ftst _((OP *o));
-OP *ck_anoncode _((OP *o));
-OP *ck_bitop _((OP *o));
-OP *ck_concat _((OP *o));
-OP *ck_spair _((OP *o));
-OP *ck_delete _((OP *o));
-OP *ck_eof _((OP *o));
-OP *ck_eval _((OP *o));
-OP *ck_exec _((OP *o));
-OP *ck_exists _((OP *o));
-OP *ck_rvconst _((OP *o));
-OP *ck_fun _((OP *o));
-OP *ck_glob _((OP *o));
-OP *ck_grep _((OP *o));
-OP *ck_index _((OP *o));
-OP *ck_lengthconst _((OP *o));
-OP *ck_lfun _((OP *o));
-OP *ck_rfun _((OP *o));
-OP *ck_listiob _((OP *o));
-OP *ck_fun_locale _((OP *o));
-OP *ck_scmp _((OP *o));
-OP *ck_match _((OP *o));
-OP *ck_null _((OP *o));
-OP *ck_repeat _((OP *o));
-OP *ck_require _((OP *o));
-OP *ck_select _((OP *o));
-OP *ck_shift _((OP *o));
-OP *ck_sort _((OP *o));
-OP *ck_split _((OP *o));
-OP *ck_subr _((OP *o));
-OP *ck_svconst _((OP *o));
-OP *ck_trunc _((OP *o));
void unwind_handler_stack _((void *p));
void restore_magic _((void *p));
void restore_rsfp _((void *f));
VIRTUAL void sv_setsv_mg _((SV *dstr, SV *sstr));
VIRTUAL void sv_usepvn_mg _((SV *sv, char *ptr, STRLEN len));
+VIRTUAL MGVTBL* get_vtbl _((int vtbl_id));
+
/* New virtual functions must be added here to maintain binary
* compatablity with PERL_OBJECT
*/
+VIRTUAL char* pv_display _((SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim));
+VIRTUAL void dump_indent _((I32 level, PerlIO *file, const char* pat, ...));
+
+VIRTUAL void do_gv_dump _((I32 level, PerlIO *file, char *name, GV *sv));
+VIRTUAL void do_gvgv_dump _((I32 level, PerlIO *file, char *name, GV *sv));
+VIRTUAL void do_hv_dump _((I32 level, PerlIO *file, char *name, HV *sv));
+VIRTUAL void do_magic_dump _((I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim));
+VIRTUAL void do_op_dump _((I32 level, PerlIO *file, OP *o));
+VIRTUAL void do_pmop_dump _((I32 level, PerlIO *file, PMOP *pm));
+VIRTUAL void do_sv_dump _((I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim));
+VIRTUAL void magic_dump _((MAGIC *mg));
+VIRTUAL void reginitcolors _((void));