[asperl] integrate latest win32 branch
[p5sagit/p5-mst-13.2.git] / proto.h
diff --git a/proto.h b/proto.h
index 2835d34..a67d1e1 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -90,10 +90,10 @@ VIRTUAL char **     get_op_names _((void));
 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,
@@ -137,7 +137,9 @@ VIRTUAL void        do_vecset _((SV* sv));
 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
@@ -264,6 +266,7 @@ 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));
 int    main _((int argc, char** argv, char** env));
@@ -277,9 +280,10 @@ 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 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));
@@ -342,7 +346,9 @@ 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) || defined(PERL_OBJECT))
 VIRTUAL SV*    newRV_noinc _((SV *));
+#endif
 #ifdef LEAKTEST
 VIRTUAL SV*    newSV _((I32 x, STRLEN len));
 #else
@@ -434,12 +440,16 @@ VIRTUAL void      push_scope _((void));
 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));
@@ -461,7 +471,8 @@ VIRTUAL void        save_clearsv _((SV** svp));
 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
@@ -499,44 +510,54 @@ VIRTUAL char*     screaminstr _((SV* bigsv, SV* littlesv, I32 start_shift, I32 end_s
 #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));
@@ -547,7 +568,9 @@ VIRTUAL void        sv_magic _((SV* sv, SV* obj, int how, char* name, I32 namlen));
 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));
@@ -586,42 +609,29 @@ VIRTUAL I32       unlnk _((char* f));
 #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));
@@ -662,17 +672,39 @@ void del_xrv _((XRV* p));
 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));
@@ -781,7 +813,6 @@ void regset _((char *, I32));
 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));
@@ -796,10 +827,12 @@ char * regcppop _((void));
 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));
@@ -1186,10 +1219,9 @@ OP *ck_trunc _((OP *o));
 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