VIRTUAL OP* Perl_append_elem(pTHX_ I32 optype, OP* head, OP* tail);
VIRTUAL OP* Perl_append_list(pTHX_ I32 optype, LISTOP* first, LISTOP* last);
VIRTUAL I32 Perl_apply(pTHX_ I32 type, SV** mark, SV** sp);
-VIRTUAL void Perl_assertref(pTHX_ OP* o);
VIRTUAL bool Perl_avhv_exists_ent(pTHX_ AV *ar, SV* keysv, U32 hash);
VIRTUAL SV** Perl_avhv_fetch_ent(pTHX_ AV *ar, SV* keysv, I32 lval, U32 hash);
VIRTUAL HE* Perl_avhv_iternext(pTHX_ AV *ar);
VIRTUAL int Perl_block_start(pTHX_ int full);
VIRTUAL void Perl_boot_core_UNIVERSAL(pTHX);
VIRTUAL void Perl_call_list(pTHX_ I32 oldscope, AV* av_list);
-VIRTUAL I32 Perl_cando(pTHX_ I32 bit, I32 effective, Stat_t* statbufp);
+VIRTUAL bool Perl_cando(pTHX_ Mode_t mode, Uid_t effective, Stat_t* statbufp);
VIRTUAL U32 Perl_cast_ulong(pTHX_ NV f);
VIRTUAL I32 Perl_cast_i32(pTHX_ NV f);
VIRTUAL IV Perl_cast_iv(pTHX_ NV f);
VIRTUAL OP* Perl_die_nocontext(const char* pat, ...);
VIRTUAL void Perl_deb_nocontext(const char* pat, ...);
VIRTUAL char* Perl_form_nocontext(const char* pat, ...);
+VIRTUAL SV* Perl_mess_nocontext(const char* pat, ...);
VIRTUAL void Perl_warn_nocontext(const char* pat, ...);
VIRTUAL void Perl_warner_nocontext(U32 err, const char* pat, ...);
VIRTUAL SV* Perl_newSVpvf_nocontext(const char* pat, ...);
VIRTUAL OP* Perl_die_where(pTHX_ char* message, STRLEN msglen);
VIRTUAL void Perl_dounwind(pTHX_ I32 cxix);
VIRTUAL bool Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp);
+VIRTUAL bool Perl_do_aexec5(pTHX_ SV* really, SV** mark, SV** sp, int fd, int flag);
VIRTUAL int Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int flag);
VIRTUAL void Perl_do_chop(pTHX_ SV* asv, SV* sv);
VIRTUAL bool Perl_do_close(pTHX_ GV* gv, bool not_implicit);
VIRTUAL void Perl_do_join(pTHX_ SV* sv, SV* del, SV** mark, SV** sp);
VIRTUAL OP* Perl_do_kv(pTHX);
VIRTUAL bool Perl_do_open(pTHX_ GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp);
+VIRTUAL bool Perl_do_open9(pTHX_ GV *gv, char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV *svs, I32 num);
VIRTUAL void Perl_do_pipe(pTHX_ SV* sv, GV* rgv, GV* wgv);
VIRTUAL bool Perl_do_print(pTHX_ SV* sv, PerlIO* fp);
VIRTUAL OP* Perl_do_readline(pTHX);
VIRTUAL Off_t Perl_do_sysseek(pTHX_ GV* gv, Off_t pos, int whence);
VIRTUAL Off_t Perl_do_tell(pTHX_ GV* gv);
VIRTUAL I32 Perl_do_trans(pTHX_ SV* sv);
+VIRTUAL UV Perl_do_vecget(pTHX_ SV* sv, I32 offset, I32 size);
VIRTUAL void Perl_do_vecset(pTHX_ SV* sv);
VIRTUAL void Perl_do_vop(pTHX_ I32 optype, SV* sv, SV* left, SV* right);
VIRTUAL OP* Perl_dofile(pTHX_ OP* term);
VIRTUAL void Perl_hv_undef(pTHX_ HV* tb);
VIRTUAL I32 Perl_ibcmp(pTHX_ const char* a, const char* b, I32 len);
VIRTUAL I32 Perl_ibcmp_locale(pTHX_ const char* a, const char* b, I32 len);
-VIRTUAL I32 Perl_ingroup(pTHX_ I32 testgid, I32 effective);
+VIRTUAL bool Perl_ingroup(pTHX_ Gid_t testgid, Uid_t effective);
+VIRTUAL void Perl_init_debugger(pTHX);
VIRTUAL void Perl_init_stacks(pTHX);
VIRTUAL U32 Perl_intro_my(pTHX);
VIRTUAL char* Perl_instr(pTHX_ const char* big, const char* little);
-VIRTUAL bool Perl_io_close(pTHX_ IO* io);
+VIRTUAL bool Perl_io_close(pTHX_ IO* io, bool not_implicit);
VIRTUAL OP* Perl_invert(pTHX_ OP* cmd);
VIRTUAL bool Perl_is_uni_alnum(pTHX_ U32 c);
VIRTUAL bool Perl_is_uni_alnumc(pTHX_ U32 c);
#if defined(USE_LOCALE_COLLATE)
VIRTUAL char* Perl_mem_collxfrm(pTHX_ const char* s, STRLEN len, STRLEN* xlen);
#endif
-VIRTUAL SV* Perl_mess(pTHX_ const char* pat, va_list* args);
+VIRTUAL SV* Perl_mess(pTHX_ const char* pat, ...);
+VIRTUAL SV* Perl_vmess(pTHX_ const char* pat, va_list* args);
+VIRTUAL void Perl_qerror(pTHX_ SV* err);
VIRTUAL int Perl_mg_clear(pTHX_ SV* sv);
VIRTUAL int Perl_mg_copy(pTHX_ SV* sv, SV* nsv, const char* key, I32 klen);
VIRTUAL MAGIC* Perl_mg_find(pTHX_ SV* sv, int type);
VIRTUAL void Perl_set_numeric_radix(pTHX);
VIRTUAL void Perl_set_numeric_standard(pTHX);
VIRTUAL void Perl_require_pv(pTHX_ const char* pv);
-VIRTUAL void Perl_pidgone(pTHX_ int pid, int status);
+VIRTUAL void Perl_pidgone(pTHX_ Pid_t pid, int status);
VIRTUAL void Perl_pmflag(pTHX_ U16* pmfl, int ch);
VIRTUAL OP* Perl_pmruntime(pTHX_ OP* pm, OP* expr, OP* repl);
VIRTUAL OP* Perl_pmtrans(pTHX_ OP* o, OP* expr, OP* repl);
VIRTUAL OP* Perl_scalarkids(pTHX_ OP* o);
VIRTUAL OP* Perl_scalarseq(pTHX_ OP* o);
VIRTUAL OP* Perl_scalarvoid(pTHX_ OP* o);
-VIRTUAL UV Perl_scan_bin(pTHX_ char* start, I32 len, I32* retlen);
-VIRTUAL UV Perl_scan_hex(pTHX_ char* start, I32 len, I32* retlen);
+VIRTUAL NV Perl_scan_bin(pTHX_ char* start, I32 len, I32* retlen);
+VIRTUAL NV Perl_scan_hex(pTHX_ char* start, I32 len, I32* retlen);
VIRTUAL char* Perl_scan_num(pTHX_ char* s);
-VIRTUAL UV Perl_scan_oct(pTHX_ char* start, I32 len, I32* retlen);
+VIRTUAL NV Perl_scan_oct(pTHX_ char* start, I32 len, I32* retlen);
VIRTUAL OP* Perl_scope(pTHX_ OP* o);
VIRTUAL char* Perl_screaminstr(pTHX_ SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last);
#if !defined(VMS)
VIRTUAL void Perl_sv_untaint(pTHX_ SV* sv);
VIRTUAL bool Perl_sv_upgrade(pTHX_ SV* sv, U32 mt);
VIRTUAL void Perl_sv_usepvn(pTHX_ SV* sv, char* ptr, STRLEN len);
-VIRTUAL void Perl_sv_vcatpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale);
-VIRTUAL void Perl_sv_vsetpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale);
+VIRTUAL void Perl_sv_vcatpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted);
+VIRTUAL void Perl_sv_vsetpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted);
VIRTUAL SV* Perl_swash_init(pTHX_ char* pkg, char* name, SV* listsv, I32 minbits, I32 none);
VIRTUAL UV Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr);
VIRTUAL void Perl_taint_env(pTHX);
VIRTUAL U8* Perl_uv_to_utf8(pTHX_ U8 *d, UV uv);
VIRTUAL void Perl_vivify_defelem(pTHX_ SV* sv);
VIRTUAL void Perl_vivify_ref(pTHX_ SV* sv, U32 to_what);
-VIRTUAL I32 Perl_wait4pid(pTHX_ int pid, int* statusp, int flags);
+VIRTUAL I32 Perl_wait4pid(pTHX_ Pid_t pid, int* statusp, int flags);
VIRTUAL void Perl_warn(pTHX_ const char* pat, ...);
VIRTUAL void Perl_vwarn(pTHX_ const char* pat, va_list* args);
VIRTUAL void Perl_warner(pTHX_ U32 err, const char* pat, ...);
VIRTUAL void Perl_tmps_grow(pTHX_ I32 n);
VIRTUAL SV* Perl_sv_rvweaken(pTHX_ SV *sv);
VIRTUAL int Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg);
+VIRTUAL OP* Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block);
+VIRTUAL CV* Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block);
+VIRTUAL void Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block);
+VIRTUAL OP * Perl_my_attrs(pTHX_ OP *o, OP *attrs);
+VIRTUAL void Perl_boot_core_xsutils(pTHX);
#if defined(PERL_OBJECT)
protected:
#endif
STATIC OP* S_scalarboolean(pTHX_ OP *o);
STATIC OP* S_too_few_arguments(pTHX_ OP *o, char* name);
STATIC OP* S_too_many_arguments(pTHX_ OP *o, char* name);
+STATIC void S_op_clear(pTHX_ OP* o);
STATIC void S_null(pTHX_ OP* o);
STATIC PADOFFSET S_pad_findlex(pTHX_ char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval, U32 flags);
STATIC OP* S_newDEFSVOP(pTHX);
STATIC char* S_gv_ename(pTHX_ GV *gv);
STATIC CV* S_cv_clone2(pTHX_ CV *proto, CV *outside);
STATIC bool S_scalar_mod_type(pTHX_ OP *o, I32 type);
+STATIC OP * S_my_kid(pTHX_ OP *o, OP *attrs);
+STATIC OP * S_dup_attrlist(pTHX_ OP *o);
+STATIC void S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs);
# if defined(PL_OP_SLAB_ALLOC)
STATIC void* S_Slab_Alloc(pTHX_ int m, size_t sz);
# endif
STATIC void S_incpush(pTHX_ char *, int);
STATIC void S_init_interp(pTHX);
STATIC void S_init_ids(pTHX);
-STATIC void S_init_debugger(pTHX);
STATIC void S_init_lexer(pTHX);
STATIC void S_init_main_stash(pTHX);
STATIC void S_init_perllib(pTHX);
#endif
#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
STATIC CV* S_get_db_sub(pTHX_ SV **svp, CV *cv);
+STATIC SV* S_method_common(pTHX_ SV* meth, U32* hashp);
#endif
#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
STATIC OP* S_doform(pTHX_ CV *cv, GV *gv, OP *retop);
-STATIC int S_emulate_eaccess(pTHX_ const char* path, int mode);
+STATIC int S_emulate_eaccess(pTHX_ const char* path, Mode_t mode);
# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
STATIC int S_dooneliner(pTHX_ char *cmd, char *filename);
# endif
STATIC regnode* S_reganode(pTHX_ U8, U32);
STATIC regnode* S_regatom(pTHX_ I32 *);
STATIC regnode* S_regbranch(pTHX_ I32 *, I32);
-STATIC void S_regc(pTHX_ U8, char *);
STATIC void S_reguni(pTHX_ UV, char *, I32*);
STATIC regnode* S_regclass(pTHX);
STATIC regnode* S_regclassutf8(pTHX);
STATIC char* S_regwhite(pTHX_ char *, char *);
STATIC char* S_nextchar(pTHX);
STATIC regnode* S_dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l);
-STATIC void S_scan_commit(pTHX_ scan_data_t *data);
-STATIC I32 S_study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags);
+STATIC void S_scan_commit(pTHX_ struct scan_data_t *data);
+STATIC I32 S_study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, struct scan_data_t *data, U32 flags);
STATIC I32 S_add_data(pTHX_ I32 n, char *s);
STATIC void S_re_croak2(pTHX_ const char* pat1, const char* pat2, ...) __attribute__((noreturn));
STATIC I32 S_regpposixcc(pTHX_ I32 value);
STATIC void S_more_xiv(pTHX);
STATIC void S_more_xnv(pTHX);
STATIC void S_more_xpv(pTHX);
+STATIC void S_more_xpviv(pTHX);
+STATIC void S_more_xpvnv(pTHX);
+STATIC void S_more_xpvcv(pTHX);
+STATIC void S_more_xpvav(pTHX);
+STATIC void S_more_xpvhv(pTHX);
+STATIC void S_more_xpvmg(pTHX);
+STATIC void S_more_xpvlv(pTHX);
+STATIC void S_more_xpvbm(pTHX);
STATIC void S_more_xrv(pTHX);
STATIC XPVIV* S_new_xiv(pTHX);
STATIC XPVNV* S_new_xnv(pTHX);
STATIC XPV* S_new_xpv(pTHX);
+STATIC XPVIV* S_new_xpviv(pTHX);
+STATIC XPVNV* S_new_xpvnv(pTHX);
+STATIC XPVCV* S_new_xpvcv(pTHX);
+STATIC XPVAV* S_new_xpvav(pTHX);
+STATIC XPVHV* S_new_xpvhv(pTHX);
+STATIC XPVMG* S_new_xpvmg(pTHX);
+STATIC XPVLV* S_new_xpvlv(pTHX);
+STATIC XPVBM* S_new_xpvbm(pTHX);
STATIC XRV* S_new_xrv(pTHX);
STATIC void S_del_xiv(pTHX_ XPVIV* p);
STATIC void S_del_xnv(pTHX_ XPVNV* p);
STATIC void S_del_xpv(pTHX_ XPV* p);
+STATIC void S_del_xpviv(pTHX_ XPVIV* p);
+STATIC void S_del_xpvnv(pTHX_ XPVNV* p);
+STATIC void S_del_xpvcv(pTHX_ XPVCV* p);
+STATIC void S_del_xpvav(pTHX_ XPVAV* p);
+STATIC void S_del_xpvhv(pTHX_ XPVHV* p);
+STATIC void S_del_xpvmg(pTHX_ XPVMG* p);
+STATIC void S_del_xpvlv(pTHX_ XPVLV* p);
+STATIC void S_del_xpvbm(pTHX_ XPVBM* p);
STATIC void S_del_xrv(pTHX_ XRV* p);
STATIC void S_sv_unglob(pTHX_ SV* sv);
STATIC void S_not_a_number(pTHX_ SV *sv);
STATIC char* S_scan_ident(pTHX_ char *s, char *send, char *dest, STRLEN destlen, I32 ck_uni);
STATIC char* S_scan_inputsymbol(pTHX_ char *start);
STATIC char* S_scan_pat(pTHX_ char *start, I32 type);
-STATIC char* S_scan_str(pTHX_ char *start);
+STATIC char* S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims);
STATIC char* S_scan_subst(pTHX_ char *start);
STATIC char* S_scan_trans(pTHX_ char *start);
STATIC char* S_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp);