This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update AUTHORS and Porting/checkAUTHORS.pl with new names and aliases
[perl5.git] / proto.h
diff --git a/proto.h b/proto.h
index 353f9c3..01be297 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -943,6 +943,11 @@ PERL_CALLCONV void Perl_gv_name_set(pTHX_ GV* gv, const char *name, U32 len, U32
 #define PERL_ARGS_ASSERT_GV_NAME_SET   \
        assert(gv); assert(name)
 
+PERL_CALLCONV void     Perl_gv_try_downgrade(pTHX_ GV* gv)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE      \
+       assert(gv)
+
 PERL_CALLCONV HV*      Perl_gv_stashpv(pTHX_ const char* name, I32 flags)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_GV_STASHPV    \
@@ -1409,6 +1414,66 @@ PERL_CALLCONV bool       Perl_is_utf8_mark(pTHX_ const U8 *p)
 #define PERL_ARGS_ASSERT_IS_UTF8_MARK  \
        assert(p)
 
+PERL_CALLCONV bool     Perl_is_utf8_X_begin(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_BEGIN       \
+       assert(p)
+
+PERL_CALLCONV bool     Perl_is_utf8_X_extend(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_EXTEND      \
+       assert(p)
+
+PERL_CALLCONV bool     Perl_is_utf8_X_prepend(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_PREPEND     \
+       assert(p)
+
+PERL_CALLCONV bool     Perl_is_utf8_X_non_hangul(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_NON_HANGUL  \
+       assert(p)
+
+PERL_CALLCONV bool     Perl_is_utf8_X_L(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_L   \
+       assert(p)
+
+PERL_CALLCONV bool     Perl_is_utf8_X_LV(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_LV  \
+       assert(p)
+
+PERL_CALLCONV bool     Perl_is_utf8_X_LVT(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_LVT \
+       assert(p)
+
+PERL_CALLCONV bool     Perl_is_utf8_X_LV_LVT_V(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_LV_LVT_V    \
+       assert(p)
+
+PERL_CALLCONV bool     Perl_is_utf8_X_T(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_T   \
+       assert(p)
+
+PERL_CALLCONV bool     Perl_is_utf8_X_V(pTHX_ const U8 *p)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_V   \
+       assert(p)
+
 PERL_CALLCONV OP*      Perl_jmaybe(pTHX_ OP *o)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_JMAYBE        \
@@ -1426,10 +1491,46 @@ STATIC OP*      S_opt_scalarhv(pTHX_ OP* rep_op)
 #define PERL_ARGS_ASSERT_OPT_SCALARHV  \
        assert(rep_op)
 
+STATIC OP*     S_is_inplace_av(pTHX_ OP* o, OP* oright)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_INPLACE_AV \
+       assert(o)
+
 #endif
 PERL_CALLCONV void     Perl_leave_scope(pTHX_ I32 base);
 PERL_CALLCONV void     Perl_lex_end(pTHX);
 PERL_CALLCONV void     Perl_lex_start(pTHX_ SV* line, PerlIO *rsfp, bool new_filter);
+PERL_CALLCONV bool     Perl_lex_bufutf8(pTHX);
+PERL_CALLCONV char*    Perl_lex_grow_linestr(pTHX_ STRLEN len);
+PERL_CALLCONV void     Perl_lex_stuff_pvn(pTHX_ char* pv, STRLEN len, U32 flags)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_LEX_STUFF_PVN \
+       assert(pv)
+
+PERL_CALLCONV void     Perl_lex_stuff_sv(pTHX_ SV* sv, U32 flags)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_LEX_STUFF_SV  \
+       assert(sv)
+
+PERL_CALLCONV void     Perl_lex_unstuff(pTHX_ char* ptr)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_LEX_UNSTUFF   \
+       assert(ptr)
+
+PERL_CALLCONV void     Perl_lex_read_to(pTHX_ char* ptr)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_LEX_READ_TO   \
+       assert(ptr)
+
+PERL_CALLCONV void     Perl_lex_discard_to(pTHX_ char* ptr)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_LEX_DISCARD_TO        \
+       assert(ptr)
+
+PERL_CALLCONV bool     Perl_lex_next_chunk(pTHX_ U32 flags);
+PERL_CALLCONV I32      Perl_lex_peek_unichar(pTHX_ U32 flags);
+PERL_CALLCONV I32      Perl_lex_read_unichar(pTHX_ U32 flags);
+PERL_CALLCONV void     Perl_lex_read_space(pTHX_ U32 flags);
 PERL_CALLCONV void     Perl_op_null(pTHX_ OP* o)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_OP_NULL       \
@@ -2282,6 +2383,11 @@ PERL_CALLCONV const char*        Perl_scan_version(pTHX_ const char *s, SV *rv, bool qv
 #define PERL_ARGS_ASSERT_SCAN_VERSION  \
        assert(s); assert(rv)
 
+PERL_CALLCONV const char*      Perl_prescan_version(pTHX_ const char *s, bool strict, const char** errstr, bool *sqv, int *ssaw_decimal, int *swidth, bool *salpha)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PRESCAN_VERSION       \
+       assert(s)
+
 PERL_CALLCONV SV*      Perl_new_version(pTHX_ SV *ver)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_NEW_VERSION   \
@@ -2352,12 +2458,12 @@ PERL_CALLCONV void      Perl_package_version(pTHX_ OP* v)
        assert(v)
 
 PERL_CALLCONV PADOFFSET        Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
-PERL_CALLCONV PADOFFSET        Perl_allocmy(pTHX_ const char *const name)
+PERL_CALLCONV PADOFFSET        Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_ALLOCMY       \
        assert(name)
 
-PERL_CALLCONV PADOFFSET        Perl_pad_findmy(pTHX_ const char* name)
+PERL_CALLCONV PADOFFSET        Perl_pad_findmy(pTHX_ const char* name, STRLEN len, U32 flags)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_PAD_FINDMY    \
@@ -2377,7 +2483,9 @@ PERL_CALLCONV OP* Perl_oopsHV(pTHX_ OP* o)
        assert(o)
 
 PERL_CALLCONV void     Perl_pad_leavemy(pTHX);
+#ifdef DEBUGGING
 PERL_CALLCONV SV*      Perl_pad_sv(pTHX_ PADOFFSET po);
+#endif
 PERL_CALLCONV void     Perl_pad_free(pTHX_ PADOFFSET po);
 #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
 STATIC void    S_pad_reset(pTHX);
@@ -3266,6 +3374,11 @@ PERL_CALLCONV void       Perl_sv_pos_u2b(pTHX_ SV *const sv, I32 *const offsetp, I32 *
 #define PERL_ARGS_ASSERT_SV_POS_U2B    \
        assert(offsetp)
 
+PERL_CALLCONV STRLEN   Perl_sv_pos_u2b_flags(pTHX_ SV *const sv, STRLEN uoffset, STRLEN *const lenp, U32 flags)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_POS_U2B_FLAGS      \
+       assert(sv)
+
 PERL_CALLCONV void     Perl_sv_pos_b2u(pTHX_ SV *const sv, I32 *const offsetp)
                        __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_SV_POS_B2U    \
@@ -4277,7 +4390,7 @@ STATIC HV*        S_require_tie_mod(pTHX_ GV *gv, const char *varpv, SV* namesv, const
 
 #endif
 
-PERL_CALLCONV void*    Perl_get_arena(pTHX_ const size_t svtype, const U32 misc)
+PERL_CALLCONV void*    Perl_get_arena(pTHX_ const size_t arenasize, const svtype bodytype)
                        __attribute__malloc__
                        __attribute__warn_unused_result__;
 
@@ -5699,6 +5812,11 @@ STATIC char*     S_force_version(pTHX_ char *s, int guessing)
 #define PERL_ARGS_ASSERT_FORCE_VERSION \
        assert(s)
 
+STATIC char*   S_force_strict_version(pTHX_ char *s)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_FORCE_STRICT_VERSION  \
+       assert(s)
+
 STATIC char*   S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack, int allow_tick)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_FORCE_WORD    \
@@ -6096,7 +6214,7 @@ PERL_CALLCONV void        Perl_pad_undef(pTHX_ CV* cv)
 #define PERL_ARGS_ASSERT_PAD_UNDEF     \
        assert(cv)
 
-PERL_CALLCONV PADOFFSET        Perl_pad_add_name(pTHX_ const char *name, HV* typestash, HV* ourstash, bool clone, bool state)
+PERL_CALLCONV PADOFFSET        Perl_pad_add_name(pTHX_ const char *name, const STRLEN len, const U32 flags, HV *typestash, HV *ourstash)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_PAD_ADD_NAME  \
        assert(name)
@@ -6106,12 +6224,13 @@ PERL_CALLCONV PADOFFSET Perl_pad_add_anon(pTHX_ SV* sv, OPCODE op_type)
 #define PERL_ARGS_ASSERT_PAD_ADD_ANON  \
        assert(sv)
 
-PERL_CALLCONV void     Perl_pad_check_dup(pTHX_ const char* name, bool is_our, const HV* ourstash)
-                       __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_3);
+#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
+STATIC void    S_pad_check_dup(pTHX_ SV *name, const U32 flags, const HV *ourstash)
+                       __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_PAD_CHECK_DUP \
-       assert(name); assert(ourstash)
+       assert(name)
 
+#endif
 #ifdef DEBUGGING
 PERL_CALLCONV void     Perl_pad_setsv(pTHX_ PADOFFSET po, SV* sv)
                        __attribute__nonnull__(pTHX_2);
@@ -6152,6 +6271,11 @@ STATIC PADOFFSET S_pad_findlex(pTHX_ const char *name, const CV* cv, U32 seq, in
 #define PERL_ARGS_ASSERT_PAD_FINDLEX   \
        assert(name); assert(cv); assert(out_name_sv); assert(out_flags)
 
+STATIC PADOFFSET       S_pad_add_name_sv(pTHX_ SV *namesv, const U32 flags, HV *typestash, HV *ourstash)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV       \
+       assert(namesv)
+
 #  if defined(DEBUGGING)
 STATIC void    S_cv_dump(pTHX_ const CV *cv, const char *title)
                        __attribute__nonnull__(pTHX_1)
@@ -6178,11 +6302,13 @@ PERL_CALLCONV void      Perl_save_set_svflags(pTHX_ SV *sv, U32 mask, U32 val)
 #define PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS      \
        assert(sv)
 
+#ifdef DEBUGGING
 PERL_CALLCONV void     Perl_hv_assert(pTHX_ HV *hv)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_HV_ASSERT     \
        assert(hv)
 
+#endif
 
 PERL_CALLCONV SV*      Perl_hv_scalar(pTHX_ HV *hv)
                        __attribute__warn_unused_result__