This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
added patch, tweaked PERL_OBJECT things
[perl5.git] / proto.h
diff --git a/proto.h b/proto.h
index d7b7762..9e99392 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -1,11 +1,4 @@
 #ifdef PERL_OBJECT
-#include "ipstdio.h"
-#include "ipdir.h"
-#include "ipenv.h"
-#include "iplio.h"
-#include "ipmem.h"
-#include "ipproc.h"
-#include "ipsock.h"
 #define VIRTUAL virtual
 #else
 #define VIRTUAL
@@ -28,19 +21,11 @@ VIRTUAL OP* append_elem _((I32 optype, OP* head, OP* tail));
 VIRTUAL OP*    append_list _((I32 optype, LISTOP* first, LISTOP* last));
 VIRTUAL I32    apply _((I32 type, SV** mark, SV** sp));
 VIRTUAL void   assertref _((OP* o));
-VIRTUAL SV*    avhv_delete _((AV *ar, char* key, U32 klen, I32 flags));
-VIRTUAL SV*    avhv_delete_ent _((AV *ar, SV* keysv, I32 flags, U32 hash));
-VIRTUAL bool   avhv_exists _((AV *ar, char* key, U32 klen));
 VIRTUAL bool   avhv_exists_ent _((AV *ar, SV* keysv, U32 hash));
-VIRTUAL SV**   avhv_fetch _((AV *ar, char* key, U32 klen, I32 lval));
 VIRTUAL SV**   avhv_fetch_ent _((AV *ar, SV* keysv, I32 lval, U32 hash));
-VIRTUAL I32    avhv_iterinit _((AV *ar));
 VIRTUAL HE*    avhv_iternext _((AV *ar));
-VIRTUAL SV *   avhv_iternextsv _((AV *ar, char** key, I32* retlen));
 VIRTUAL SV*    avhv_iterval _((AV *ar, HE* entry));
 VIRTUAL HV*    avhv_keys _((AV *ar));
-VIRTUAL SV**   avhv_store _((AV *ar, char* key, U32 klen, SV* val, U32 hash));
-VIRTUAL SV**   avhv_store_ent _((AV *av, SV *keysv, SV *val, U32 hash));
 VIRTUAL void   av_clear _((AV* ar));
 VIRTUAL void   av_extend _((AV* ar, I32 key));
 VIRTUAL AV*    av_fake _((I32 size, SV** svp));
@@ -151,7 +136,7 @@ VIRTUAL void        dump_pm _((PMOP* pm));
 VIRTUAL void   dump_packsubs _((HV* stash));
 VIRTUAL void   dump_sub _((GV* gv));
 VIRTUAL void   fbm_compile _((SV* sv, U32 flags));
-VIRTUAL char*  fbm_instr _((unsigned char* big, unsigned char* bigend, SV* littlesv));
+VIRTUAL char*  fbm_instr _((unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags));
 VIRTUAL char*  find_script _((char *scriptname, bool dosearch, char **search_ext, I32 flags));
 #ifdef USE_THREADS
 VIRTUAL PADOFFSET      find_threadsv _((char *name));
@@ -272,6 +257,9 @@ 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));
+#ifdef MYMALLOC
+VIRTUAL MEM_SIZE       malloced_size _((void *p));
+#endif
 VIRTUAL void   markstack_grow _((void));
 #ifdef USE_LOCALE_COLLATE
 VIRTUAL char*  mem_collxfrm _((const char* s, STRLEN len, STRLEN* xlen));
@@ -344,14 +332,13 @@ VIRTUAL GV*       newGVgen _((char* pack));
 VIRTUAL OP*    newGVREF _((I32 type, OP* o));
 VIRTUAL OP*    newHVREF _((OP* o));
 VIRTUAL HV*    newHV _((void));
+VIRTUAL HV*    newHVhv _((HV* hv));
 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* pref));
-#if !defined(__GNUC__) && (defined(CRIPPLED_CC) || defined(USE_THREADS) || defined(PERL_OBJECT))
 VIRTUAL SV*    newRV_noinc _((SV *sv));
-#endif
 VIRTUAL SV*    newSV _((STRLEN len));
 VIRTUAL OP*    newSVREF _((OP* o));
 VIRTUAL OP*    newSVOP _((I32 type, I32 flags, SV* sv));
@@ -443,12 +430,10 @@ VIRTUAL void      pop_scope _((void));
 VIRTUAL OP*    prepend_elem _((I32 optype, OP* head, OP* tail));
 VIRTUAL void   push_return _((OP* o));
 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));
 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));
@@ -486,6 +471,7 @@ VIRTUAL void        save_freepv _((char* pv));
 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 void   save_hints _((void));
 VIRTUAL void   save_hptr _((HV** hptr));
 VIRTUAL void   save_I16 _((I16* intp));
 VIRTUAL void   save_I32 _((I32* intp));
@@ -672,7 +658,7 @@ void del_xrv _((XRV* p));
 void sv_mortalgrow _((void));
 void sv_unglob _((SV* sv));
 void sv_check_thinkfirst _((SV *sv));
-
+I32 avhv_index_sv _((SV* sv));
 
 void sv_catpv_mg _((SV *sv, char *ptr));
 void sv_catpvf_mg _((SV *sv, const char* pat, ...));
@@ -715,6 +701,7 @@ I32 dopoptoeval _((I32 startingblock));
 I32 dopoptolabel _((char *label));
 I32 dopoptoloop _((I32 startingblock));
 I32 dopoptosub _((I32 startingblock));
+I32 dopoptosub_at _((PERL_CONTEXT* cxstk, I32 startingblock));
 void save_lines _((AV *array, SV *sv));
 OP *doeval _((int gimme, OP** startop));
 SV *mul128 _((SV *sv, U8 m));
@@ -723,6 +710,12 @@ int div128 _((SV *pnum, bool *done));
 
 int runops_standard _((void));
 int runops_debug _((void));
+
+regexp*        pregcomp _((char* exp, char* xend, PMOP* pm));
+I32    regexec_flags _((regexp* prog, char* stringarg, char* strend,
+                        char* strbeg, I32 minend, SV* screamer,
+                        void* data, U32 flags));
+
 void check_uni _((void));
 void  force_next _((I32 type));
 char *force_version _((char *start));
@@ -733,7 +726,7 @@ char *scan_formline _((char *s));
 char *scan_heredoc _((char *s));
 char *scan_ident _((char *s, char *send, char *dest, STRLEN destlen, I32 ck_uni));
 char *scan_inputsymbol _((char *start));
-char *scan_pat _((char *start));
+char *scan_pat _((char *start, I32 type));
 char *scan_str _((char *start));
 char *scan_subst _((char *start));
 char *scan_trans _((char *start));
@@ -755,6 +748,7 @@ I32 sublex_start _((void));
 int uni _((I32 f, char *s));
 #endif
 char * filter_gets _((SV *sv, PerlIO *fp, STRLEN append));
+SV *new_constant _((char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type));
 int ao _((int toketype));
 void depcom _((void));
 #ifdef WIN32
@@ -779,6 +773,7 @@ CV *cv_clone2 _((CV *proto, CV *outside));
 void find_beginning _((void));
 void forbid_setid _((char *));
 void incpush _((char *, int));
+void init_interp _((void));
 void init_ids _((void));
 void init_debugger _((void));
 void init_lexer _((void));
@@ -838,351 +833,7 @@ OP *new_logop _((I32 type, I32 flags, OP **firstp, OP **otherp));
 #define PPDEF(s) OP* CPerlObj::s _((ARGSproto));
 public:
 
-PPDEF(pp_aassign)
-PPDEF(pp_abs)
-PPDEF(pp_accept)
-PPDEF(pp_add)
-PPDEF(pp_aelem)
-PPDEF(pp_aelemfast)
-PPDEF(pp_alarm)
-PPDEF(pp_and)
-PPDEF(pp_andassign)
-PPDEF(pp_anoncode)
-PPDEF(pp_anonhash)
-PPDEF(pp_anonlist)
-PPDEF(pp_aslice)
-PPDEF(pp_atan2)
-PPDEF(pp_av2arylen)
-PPDEF(pp_backtick)
-PPDEF(pp_bind)
-PPDEF(pp_binmode)
-PPDEF(pp_bit_and)
-PPDEF(pp_bit_or)
-PPDEF(pp_bit_xor)
-PPDEF(pp_bless)
-PPDEF(pp_caller)
-PPDEF(pp_chdir)
-PPDEF(pp_chmod)
-PPDEF(pp_chomp)
-PPDEF(pp_chop)
-PPDEF(pp_chown)
-PPDEF(pp_chr)
-PPDEF(pp_chroot)
-PPDEF(pp_close)
-PPDEF(pp_closedir)
-PPDEF(pp_complement)
-PPDEF(pp_concat)
-PPDEF(pp_cond_expr)
-PPDEF(pp_connect)
-PPDEF(pp_const)
-PPDEF(pp_cos)
-PPDEF(pp_crypt)
-PPDEF(pp_cswitch)
-PPDEF(pp_dbmclose)
-PPDEF(pp_dbmopen)
-PPDEF(pp_dbstate)
-PPDEF(pp_defined)
-PPDEF(pp_delete)
-PPDEF(pp_die)
-PPDEF(pp_divide)
-PPDEF(pp_dofile)
-PPDEF(pp_dump)
-PPDEF(pp_each)
-PPDEF(pp_egrent)
-PPDEF(pp_ehostent)
-PPDEF(pp_enetent)
-PPDEF(pp_enter)
-PPDEF(pp_entereval)
-PPDEF(pp_enteriter)
-PPDEF(pp_enterloop)
-PPDEF(pp_entersub)
-PPDEF(pp_entertry)
-PPDEF(pp_enterwrite)
-PPDEF(pp_eof)
-PPDEF(pp_eprotoent)
-PPDEF(pp_epwent)
-PPDEF(pp_eq)
-PPDEF(pp_eservent)
-PPDEF(pp_exec)
-PPDEF(pp_exists)
-PPDEF(pp_exit)
-PPDEF(pp_exp)
-PPDEF(pp_fcntl)
-PPDEF(pp_fileno)
-PPDEF(pp_flip)
-PPDEF(pp_flock)
-PPDEF(pp_flop)
-PPDEF(pp_fork)
-PPDEF(pp_formline)
-PPDEF(pp_ftatime)
-PPDEF(pp_ftbinary)
-PPDEF(pp_ftblk)
-PPDEF(pp_ftchr)
-PPDEF(pp_ftctime)
-PPDEF(pp_ftdir)
-PPDEF(pp_fteexec)
-PPDEF(pp_fteowned)
-PPDEF(pp_fteread)
-PPDEF(pp_ftewrite)
-PPDEF(pp_ftfile)
-PPDEF(pp_ftis)
-PPDEF(pp_ftlink)
-PPDEF(pp_ftmtime)
-PPDEF(pp_ftpipe)
-PPDEF(pp_ftrexec)
-PPDEF(pp_ftrowned)
-PPDEF(pp_ftrread)
-PPDEF(pp_ftrwrite)
-PPDEF(pp_ftsgid)
-PPDEF(pp_ftsize)
-PPDEF(pp_ftsock)
-PPDEF(pp_ftsuid)
-PPDEF(pp_ftsvtx)
-PPDEF(pp_fttext)
-PPDEF(pp_fttty)
-PPDEF(pp_ftzero)
-PPDEF(pp_ge)
-PPDEF(pp_gelem)
-PPDEF(pp_getc)
-PPDEF(pp_getlogin)
-PPDEF(pp_getpeername)
-PPDEF(pp_getpgrp)
-PPDEF(pp_getppid)
-PPDEF(pp_getpriority)
-PPDEF(pp_getsockname)
-PPDEF(pp_ggrent)
-PPDEF(pp_ggrgid)
-PPDEF(pp_ggrnam)
-PPDEF(pp_ghbyaddr)
-PPDEF(pp_ghbyname)
-PPDEF(pp_ghostent)
-PPDEF(pp_glob)
-PPDEF(pp_gmtime)
-PPDEF(pp_gnbyaddr)
-PPDEF(pp_gnbyname)
-PPDEF(pp_gnetent)
-PPDEF(pp_goto)
-PPDEF(pp_gpbyname)
-PPDEF(pp_gpbynumber)
-PPDEF(pp_gprotoent)
-PPDEF(pp_gpwent)
-PPDEF(pp_gpwnam)
-PPDEF(pp_gpwuid)
-PPDEF(pp_grepstart)
-PPDEF(pp_grepwhile)
-PPDEF(pp_gsbyname)
-PPDEF(pp_gsbyport)
-PPDEF(pp_gservent)
-PPDEF(pp_gsockopt)
-PPDEF(pp_gt)
-PPDEF(pp_gv)
-PPDEF(pp_gvsv)
-PPDEF(pp_helem)
-PPDEF(pp_hex)
-PPDEF(pp_hslice)
-PPDEF(pp_i_add)
-PPDEF(pp_i_divide)
-PPDEF(pp_i_eq)
-PPDEF(pp_i_ge)
-PPDEF(pp_i_gt)
-PPDEF(pp_i_le)
-PPDEF(pp_i_lt)
-PPDEF(pp_i_modulo)
-PPDEF(pp_i_multiply)
-PPDEF(pp_i_ncmp)
-PPDEF(pp_i_ne)
-PPDEF(pp_i_negate)
-PPDEF(pp_i_subtract)
-PPDEF(pp_index)
-PPDEF(pp_indread)
-PPDEF(pp_int)
-PPDEF(pp_ioctl)
-PPDEF(pp_iter)
-PPDEF(pp_join)
-PPDEF(pp_keys)
-PPDEF(pp_kill)
-PPDEF(pp_last)
-PPDEF(pp_lc)
-PPDEF(pp_lcfirst)
-PPDEF(pp_le)
-PPDEF(pp_leave)
-PPDEF(pp_leaveeval)
-PPDEF(pp_leaveloop)
-PPDEF(pp_leavesub)
-PPDEF(pp_leavetry)
-PPDEF(pp_leavewrite)
-PPDEF(pp_left_shift)
-PPDEF(pp_length)
-PPDEF(pp_lineseq)
-PPDEF(pp_link)
-PPDEF(pp_list)
-PPDEF(pp_listen)
-PPDEF(pp_localtime)
-PPDEF(pp_lock)
-PPDEF(pp_log)
-PPDEF(pp_lslice)
-PPDEF(pp_lstat)
-PPDEF(pp_lt)
-PPDEF(pp_mapstart)
-PPDEF(pp_mapwhile)
-PPDEF(pp_match)
-PPDEF(pp_method)
-PPDEF(pp_mkdir)
-PPDEF(pp_modulo)
-PPDEF(pp_msgctl)
-PPDEF(pp_msgget)
-PPDEF(pp_msgrcv)
-PPDEF(pp_msgsnd)
-PPDEF(pp_multiply)
-PPDEF(pp_ncmp)
-PPDEF(pp_ne)
-PPDEF(pp_negate)
-PPDEF(pp_next)
-PPDEF(pp_nextstate)
-PPDEF(pp_not)
-PPDEF(pp_nswitch)
-PPDEF(pp_null)
-PPDEF(pp_oct)
-PPDEF(pp_open)
-PPDEF(pp_open_dir)
-PPDEF(pp_or)
-PPDEF(pp_orassign)
-PPDEF(pp_ord)
-PPDEF(pp_pack)
-PPDEF(pp_padany)
-PPDEF(pp_padav)
-PPDEF(pp_padhv)
-PPDEF(pp_padsv)
-PPDEF(pp_pipe_op)
-PPDEF(pp_pop)
-PPDEF(pp_pos)
-PPDEF(pp_postdec)
-PPDEF(pp_postinc)
-PPDEF(pp_pow)
-PPDEF(pp_predec)
-PPDEF(pp_preinc)
-PPDEF(pp_print)
-PPDEF(pp_prototype)
-PPDEF(pp_prtf)
-PPDEF(pp_push)
-PPDEF(pp_pushmark)
-PPDEF(pp_pushre)
-PPDEF(pp_quotemeta)
-PPDEF(pp_rand)
-PPDEF(pp_range)
-PPDEF(pp_rcatline)
-PPDEF(pp_read)
-PPDEF(pp_readdir)
-PPDEF(pp_readline)
-PPDEF(pp_readlink)
-PPDEF(pp_recv)
-PPDEF(pp_redo)
-PPDEF(pp_ref)
-PPDEF(pp_refgen)
-PPDEF(pp_regcmaybe)
-PPDEF(pp_regcomp)
-PPDEF(pp_rename)
-PPDEF(pp_repeat)
-PPDEF(pp_require)
-PPDEF(pp_reset)
-PPDEF(pp_return)
-PPDEF(pp_reverse)
-PPDEF(pp_rewinddir)
-PPDEF(pp_right_shift)
-PPDEF(pp_rindex)
-PPDEF(pp_rmdir)
-PPDEF(pp_rv2av)
-PPDEF(pp_rv2cv)
-PPDEF(pp_rv2gv)
-PPDEF(pp_rv2hv)
-PPDEF(pp_rv2sv)
-PPDEF(pp_sassign)
-PPDEF(pp_scalar)
-PPDEF(pp_schomp)
-PPDEF(pp_schop)
-PPDEF(pp_scmp)
-PPDEF(pp_scope)
-PPDEF(pp_seek)
-PPDEF(pp_seekdir)
-PPDEF(pp_select)
-PPDEF(pp_semctl)
-PPDEF(pp_semget)
-PPDEF(pp_semop)
-PPDEF(pp_send)
-PPDEF(pp_seq)
-PPDEF(pp_setpgrp)
-PPDEF(pp_setpriority)
-PPDEF(pp_sge)
-PPDEF(pp_sgrent)
-PPDEF(pp_sgt)
-PPDEF(pp_shift)
-PPDEF(pp_shmctl)
-PPDEF(pp_shmget)
-PPDEF(pp_shmread)
-PPDEF(pp_shmwrite)
-PPDEF(pp_shostent)
-PPDEF(pp_shutdown)
-PPDEF(pp_sin)
-PPDEF(pp_sle)
-PPDEF(pp_sleep)
-PPDEF(pp_slt)
-PPDEF(pp_sne)
-PPDEF(pp_snetent)
-PPDEF(pp_socket)
-PPDEF(pp_sockpair)
-PPDEF(pp_sort)
-PPDEF(pp_splice)
-PPDEF(pp_split)
-PPDEF(pp_sprintf)
-PPDEF(pp_sprotoent)
-PPDEF(pp_spwent)
-PPDEF(pp_sqrt)
-PPDEF(pp_srand)
-PPDEF(pp_srefgen)
-PPDEF(pp_sselect)
-PPDEF(pp_sservent)
-PPDEF(pp_ssockopt)
-PPDEF(pp_stat)
-PPDEF(pp_stringify)
-PPDEF(pp_stub)
-PPDEF(pp_study)
-PPDEF(pp_subst)
-PPDEF(pp_substcont)
-PPDEF(pp_substr)
-PPDEF(pp_subtract)
-PPDEF(pp_symlink)
-PPDEF(pp_syscall)
-PPDEF(pp_sysopen)
-PPDEF(pp_sysread)
-PPDEF(pp_sysseek)
-PPDEF(pp_system)
-PPDEF(pp_syswrite)
-PPDEF(pp_tell)
-PPDEF(pp_telldir)
-PPDEF(pp_threadsv)
-PPDEF(pp_tie)
-PPDEF(pp_tied)
-PPDEF(pp_time)
-PPDEF(pp_tms)
-PPDEF(pp_trans)
-PPDEF(pp_truncate)
-PPDEF(pp_uc)
-PPDEF(pp_ucfirst)
-PPDEF(pp_umask)
-PPDEF(pp_undef)
-PPDEF(pp_unlink)
-PPDEF(pp_unpack)
-PPDEF(pp_unshift)
-PPDEF(pp_unstack)
-PPDEF(pp_untie)
-PPDEF(pp_utime)
-PPDEF(pp_values)
-PPDEF(pp_vec)
-PPDEF(pp_wait)
-PPDEF(pp_waitpid)
-PPDEF(pp_wantarray)
-PPDEF(pp_warn)
-PPDEF(pp_xor)
+#include "pp_proto.h"
 
 OP * ck_ftst _((OP *o));
 OP *ck_anoncode _((OP *o));