PERL_CALLCONV void Perl_hv_undef(pTHX_ HV* tb);
PERL_CALLCONV I32 Perl_ibcmp(pTHX_ const char* a, const char* b, I32 len);
PERL_CALLCONV I32 Perl_ibcmp_locale(pTHX_ const char* a, const char* b, I32 len);
+PERL_CALLCONV I32 Perl_ibcmp_utf8(pTHX_ const char* a, char **pe1, UV l1, bool u1, const char* b, char **pe2, UV l2, bool u2);
PERL_CALLCONV bool Perl_ingroup(pTHX_ Gid_t testgid, Uid_t effective);
+PERL_CALLCONV void Perl_init_argv_symbols(pTHX_ int, char **);
PERL_CALLCONV void Perl_init_debugger(pTHX);
PERL_CALLCONV void Perl_init_stacks(pTHX);
PERL_CALLCONV void Perl_init_tm(pTHX_ struct tm *ptm);
PERL_CALLCONV OP* Perl_invert(pTHX_ OP* cmd);
PERL_CALLCONV bool Perl_is_gv_magical(pTHX_ char *name, STRLEN len, U32 flags);
PERL_CALLCONV I32 Perl_is_lvalue_sub(pTHX);
-PERL_CALLCONV bool Perl_is_uni_alnum(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_alnumc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_idfirst(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_alpha(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_ascii(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_space(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_cntrl(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_graph(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_digit(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_upper(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_lower(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_print(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_punct(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_xdigit(pTHX_ U32 c);
-PERL_CALLCONV U32 Perl_to_uni_upper(pTHX_ U32 c, U8 *p, STRLEN *lenp);
-PERL_CALLCONV U32 Perl_to_uni_title(pTHX_ U32 c, U8 *p, STRLEN *lenp);
-PERL_CALLCONV U32 Perl_to_uni_lower(pTHX_ U32 c, U8 *p, STRLEN *lenp);
-PERL_CALLCONV bool Perl_is_uni_alnum_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_alnumc_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_idfirst_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_alpha_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_ascii_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_space_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_cntrl_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_graph_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_digit_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_upper_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_lower_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_print_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_punct_lc(pTHX_ U32 c);
-PERL_CALLCONV bool Perl_is_uni_xdigit_lc(pTHX_ U32 c);
+PERL_CALLCONV U32 Perl_to_uni_upper_lc(pTHX_ U32 c);
+PERL_CALLCONV U32 Perl_to_uni_title_lc(pTHX_ U32 c);
+PERL_CALLCONV U32 Perl_to_uni_lower_lc(pTHX_ U32 c);
+PERL_CALLCONV bool Perl_is_uni_alnum(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_alnumc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_idfirst(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_alpha(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_ascii(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_space(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_cntrl(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_graph(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_digit(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_upper(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_lower(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_print(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_punct(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_xdigit(pTHX_ UV c);
+PERL_CALLCONV UV Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp);
+PERL_CALLCONV UV Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp);
+PERL_CALLCONV UV Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp);
+PERL_CALLCONV UV Perl_to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp);
+PERL_CALLCONV bool Perl_is_uni_alnum_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_alnumc_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_idfirst_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_alpha_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_ascii_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_space_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_cntrl_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_graph_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_digit_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_upper_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_lower_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_print_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_punct_lc(pTHX_ UV c);
+PERL_CALLCONV bool Perl_is_uni_xdigit_lc(pTHX_ UV c);
PERL_CALLCONV STRLEN Perl_is_utf8_char(pTHX_ U8 *p);
PERL_CALLCONV bool Perl_is_utf8_string(pTHX_ U8 *s, STRLEN len);
PERL_CALLCONV bool Perl_is_utf8_alnum(pTHX_ U8 *p);
;
PERL_CALLCONV SV* Perl_vmess(pTHX_ const char* pat, va_list* args);
PERL_CALLCONV void Perl_qerror(pTHX_ SV* err);
-PERL_CALLCONV void Perl_sortsv(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t f);
+PERL_CALLCONV void Perl_sortsv(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t cmp);
PERL_CALLCONV int Perl_mg_clear(pTHX_ SV* sv);
PERL_CALLCONV int Perl_mg_copy(pTHX_ SV* sv, SV* nsv, const char* key, I32 klen);
PERL_CALLCONV MAGIC* Perl_mg_find(pTHX_ SV* sv, int type);
PERL_CALLCONV OP* Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont);
PERL_CALLCONV PERL_SI* Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems);
+PERL_CALLCONV char* Perl_new_vstring(pTHX_ char *vstr, SV *sv);
PERL_CALLCONV PerlIO* Perl_nextargv(pTHX_ GV* gv);
PERL_CALLCONV char* Perl_ninstr(pTHX_ const char* big, const char* bigend, const char* little, const char* lend);
PERL_CALLCONV OP* Perl_oopsCV(pTHX_ OP* o);
PERL_CALLCONV I32 Perl_setenv_getix(pTHX_ char* nam);
#endif
PERL_CALLCONV void Perl_setdefout(pTHX_ GV* gv);
-PERL_CALLCONV char* Perl_sharepvn(pTHX_ const char* sv, I32 len, U32 hash);
PERL_CALLCONV HEK* Perl_share_hek(pTHX_ const char* sv, I32 len, U32 hash);
PERL_CALLCONV Signal_t Perl_sighandler(int sig);
PERL_CALLCONV SV** Perl_stack_grow(pTHX_ SV** sp, SV**p, int n);
/* PERL_CALLCONV char* sv_pvn_force(pTHX_ SV* sv, STRLEN* lp); */
PERL_CALLCONV char* Perl_sv_pvutf8n_force(pTHX_ SV* sv, STRLEN* lp);
PERL_CALLCONV char* Perl_sv_pvbyten_force(pTHX_ SV* sv, STRLEN* lp);
+PERL_CALLCONV char* Perl_sv_recode_to_utf8(pTHX_ SV* sv, SV *encoding);
PERL_CALLCONV char* Perl_sv_reftype(pTHX_ SV* sv, int ob);
PERL_CALLCONV void Perl_sv_replace(pTHX_ SV* sv, SV* nsv);
PERL_CALLCONV void Perl_sv_report_used(pTHX);
PERL_CALLCONV UV Perl_to_utf8_lower(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp);
PERL_CALLCONV UV Perl_to_utf8_upper(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp);
PERL_CALLCONV UV Perl_to_utf8_title(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp);
+PERL_CALLCONV UV Perl_to_utf8_fold(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp);
#if defined(UNLINK_ALL_VERSIONS)
PERL_CALLCONV I32 Perl_unlnk(pTHX_ char* f);
#endif
PERL_CALLCONV UV Perl_utf8n_to_uvuni(pTHX_ U8 *s, STRLEN curlen, STRLEN* retlen, U32 flags);
PERL_CALLCONV U8* Perl_uvchr_to_utf8(pTHX_ U8 *d, UV uv);
PERL_CALLCONV U8* Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv);
+PERL_CALLCONV U8* Perl_uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags);
+PERL_CALLCONV U8* Perl_uvuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags);
+PERL_CALLCONV char* Perl_pv_uni_display(pTHX_ SV *dsv, U8 *spv, STRLEN len, STRLEN pvlim, UV flags);
+PERL_CALLCONV char* Perl_sv_uni_display(pTHX_ SV *dsv, SV *ssv, STRLEN pvlim, UV flags);
PERL_CALLCONV void Perl_vivify_defelem(pTHX_ SV* sv);
PERL_CALLCONV void Perl_vivify_ref(pTHX_ SV* sv, U32 to_what);
PERL_CALLCONV I32 Perl_wait4pid(pTHX_ Pid_t pid, int* statusp, int flags);
PERL_CALLCONV void Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len);
PERL_CALLCONV MGVTBL* Perl_get_vtbl(pTHX_ int vtbl_id);
PERL_CALLCONV char* Perl_pv_display(pTHX_ SV *dsv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim);
-PERL_CALLCONV char* Perl_sv_uni_display(pTHX_ SV *dsv, SV *ssv, STRLEN pvlim, UV flags);
PERL_CALLCONV void Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
#ifdef CHECK_FORMAT
__attribute__((format(printf,pTHX_3,pTHX_4)))
# endif
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_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp);
STATIC OP * S_dup_attrlist(pTHX_ OP *o);
-STATIC void S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs);
+STATIC void S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs, bool for_my);
+STATIC void S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp);
# if defined(PL_OP_SLAB_ALLOC)
STATIC void* S_Slab_Alloc(pTHX_ int m, size_t sz);
# endif
STATIC char* S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, char *startpos, I32 norun);
#endif
-#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
-# ifdef DEBUGGING
+#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
STATIC CV* S_deb_curcv(pTHX_ I32 ix);
STATIC void S_debprof(pTHX_ OP *o);
-# endif
#endif
#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
PERL_CALLCONV char* Perl_sv_pvn_force_flags(pTHX_ SV* sv, STRLEN* lp, I32 flags);
PERL_CALLCONV char* Perl_sv_2pv_flags(pTHX_ SV* sv, STRLEN* lp, I32 flags);
PERL_CALLCONV char* Perl_my_atof2(pTHX_ const char *s, NV* value);
+#if !defined(HAS_SOCKETPAIR) && defined(HAS_SOCKET)
+PERL_CALLCONV int Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
+#endif
+
+
+#if defined(USE_PERLIO) && !defined(USE_SFIO)
+PERL_CALLCONV int Perl_PerlIO_close(pTHX_ PerlIO *);
+PERL_CALLCONV int Perl_PerlIO_fill(pTHX_ PerlIO *);
+PERL_CALLCONV int Perl_PerlIO_fileno(pTHX_ PerlIO *);
+PERL_CALLCONV int Perl_PerlIO_eof(pTHX_ PerlIO *);
+PERL_CALLCONV int Perl_PerlIO_error(pTHX_ PerlIO *);
+PERL_CALLCONV int Perl_PerlIO_flush(pTHX_ PerlIO *);
+PERL_CALLCONV void Perl_PerlIO_clearerr(pTHX_ PerlIO *);
+PERL_CALLCONV void Perl_PerlIO_set_cnt(pTHX_ PerlIO *, int);
+PERL_CALLCONV void Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *, STDCHAR *, int);
+PERL_CALLCONV void Perl_PerlIO_setlinebuf(pTHX_ PerlIO *);
+PERL_CALLCONV SSize_t Perl_PerlIO_read(pTHX_ PerlIO *, void *, Size_t);
+PERL_CALLCONV SSize_t Perl_PerlIO_write(pTHX_ PerlIO *, const void *, Size_t);
+PERL_CALLCONV SSize_t Perl_PerlIO_unread(pTHX_ PerlIO *, const void *, Size_t);
+PERL_CALLCONV Off_t Perl_PerlIO_tell(pTHX_ PerlIO *);
+PERL_CALLCONV int Perl_PerlIO_seek(pTHX_ PerlIO *, Off_t, int);
+
+PERL_CALLCONV STDCHAR * Perl_PerlIO_get_base(pTHX_ PerlIO *);
+PERL_CALLCONV STDCHAR * Perl_PerlIO_get_ptr(pTHX_ PerlIO *);
+PERL_CALLCONV int Perl_PerlIO_get_bufsiz(pTHX_ PerlIO *);
+PERL_CALLCONV int Perl_PerlIO_get_cnt(pTHX_ PerlIO *);
+
+PERL_CALLCONV PerlIO * Perl_PerlIO_stdin(pTHX);
+PERL_CALLCONV PerlIO * Perl_PerlIO_stdout(pTHX);
+PERL_CALLCONV PerlIO * Perl_PerlIO_stderr(pTHX);
+#endif /* PERLIO_LAYERS */
END_EXTERN_C