This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add two deprecation warnings:
[perl5.git]
/
perl.h
diff --git
a/perl.h
b/perl.h
index
019335f
..
bd77507
100644
(file)
--- a/
perl.h
+++ b/
perl.h
@@
-219,6
+219,13
@@
#define CALLREGFREE_PVT(prog) \
if(prog) CALL_FPTR((prog)->engine->free)(aTHX_ (prog))
#define CALLREGFREE_PVT(prog) \
if(prog) CALL_FPTR((prog)->engine->free)(aTHX_ (prog))
+#define CALLREG_NUMBUF(rx,paren,usesv) \
+ CALL_FPTR((rx)->engine->numbered_buff_get)(aTHX_ (rx),(paren),(usesv))
+
+#define CALLREG_NAMEDBUF(rx,name,flags) \
+ CALL_FPTR((rx)->engine->named_buff_get)(aTHX_ (rx),(name),(flags))
+
+
#if defined(USE_ITHREADS)
#define CALLREGDUPE(prog,param) \
Perl_re_dup(aTHX_ (prog),(param))
#if defined(USE_ITHREADS)
#define CALLREGDUPE(prog,param) \
Perl_re_dup(aTHX_ (prog),(param))
@@
-228,6
+235,10
@@
: (REGEXP *)NULL)
#endif
: (REGEXP *)NULL)
#endif
+
+
+
+
/*
* Because of backward compatibility reasons the PERL_UNUSED_DECL
* cannot be changed from postfix to PERL_UNUSED_DECL(x). Sigh.
/*
* Because of backward compatibility reasons the PERL_UNUSED_DECL
* cannot be changed from postfix to PERL_UNUSED_DECL(x). Sigh.
@@
-3054,10
+3065,14
@@
typedef pthread_key_t perl_key;
# define VDf "vd"
# endif
#endif
# define VDf "vd"
# endif
#endif
-
+
+#ifdef PERL_CORE
/* not used; but needed for backward compatibilty with XS code? - RMB */
/* not used; but needed for backward compatibilty with XS code? - RMB */
-#ifndef UVf
-# define UVf UVuf
+# ifndef UVf
+# define UVf UVuf
+# endif
+#else
+# undef UVf
#endif
#ifdef HASATTRIBUTE_FORMAT
#endif
#ifdef HASATTRIBUTE_FORMAT
@@
-3401,6
+3416,10
@@
long vtohl(long n);
#define U_I(what) ((unsigned int)U_32(what))
#define U_L(what) U_32(what)
#define U_I(what) ((unsigned int)U_32(what))
#define U_L(what) U_32(what)
+#ifdef HAS_SIGNBIT
+# define Perl_signbit signbit
+#endif
+
/* These do not care about the fractional part, only about the range. */
#define NV_WITHIN_IV(nv) (I_V(nv) >= IV_MIN && I_V(nv) <= IV_MAX)
#define NV_WITHIN_UV(nv) ((nv)>=0.0 && U_V(nv) >= UV_MIN && U_V(nv) <= UV_MAX)
/* These do not care about the fractional part, only about the range. */
#define NV_WITHIN_IV(nv) (I_V(nv) >= IV_MIN && I_V(nv) <= IV_MAX)
#define NV_WITHIN_UV(nv) ((nv)>=0.0 && U_V(nv) >= UV_MIN && U_V(nv) <= UV_MAX)
@@
-3891,7
+3910,7
@@
typedef Sighandler_t Sigsave_t;
#endif
#ifdef USE_PERLIO
#endif
#ifdef USE_PERLIO
-
PERL_EXPORT
_C void PerlIO_teardown(pTHX);
+
EXTERN
_C void PerlIO_teardown(pTHX);
# ifdef USE_ITHREADS
# define PERLIO_INIT MUTEX_INIT(&PL_perlio_mutex)
# define PERLIO_TERM \
# ifdef USE_ITHREADS
# define PERLIO_INIT MUTEX_INIT(&PL_perlio_mutex)
# define PERLIO_TERM \
@@
-4350,7
+4369,8
@@
enum { /* pass one of these to get_vtbl */
#define HINT_NEW_STRING 0x00008000
#define HINT_NEW_RE 0x00010000
#define HINT_LOCALIZE_HH 0x00020000 /* %^H needs to be copied */
#define HINT_NEW_STRING 0x00008000
#define HINT_NEW_RE 0x00010000
#define HINT_LOCALIZE_HH 0x00020000 /* %^H needs to be copied */
-#define HINT_LEXICAL_IO 0x00040000 /* ${^OPEN} is set */
+#define HINT_LEXICAL_IO_IN 0x00040000 /* ${^OPEN} is set for input */
+#define HINT_LEXICAL_IO_OUT 0x00080000 /* ${^OPEN} is set for output */
#define HINT_RE_TAINT 0x00100000 /* re pragma */
#define HINT_RE_EVAL 0x00200000 /* re pragma */
#define HINT_RE_TAINT 0x00100000 /* re pragma */
#define HINT_RE_EVAL 0x00200000 /* re pragma */
@@
-4467,11
+4487,6
@@
struct perl_vars *PL_VarsPtr;
struct interpreter {
# include "thrdvar.h"
# include "intrpvar.h"
struct interpreter {
# include "thrdvar.h"
# include "intrpvar.h"
-/*
- * The following is a buffer where new variables must
- * be defined to maintain binary compatibility with previous versions
- */
-PERLVARA(object_compatibility,30, char)
};
#else
};
#else
@@
-4584,66
+4599,71
@@
START_EXTERN_C
# define MGVTBL_SET_CONST_MAGIC_GET(var,a,b,c,d,e,f,g,h) EXT_MGVTBL var
#endif
# define MGVTBL_SET_CONST_MAGIC_GET(var,a,b,c,d,e,f,g,h) EXT_MGVTBL var
#endif
+/* These all need to be 0, not NULL, as NULL can be (void*)0, which is a
+ * pointer to data, whereas we're assigning pointers to functions, which are
+ * not the same beast. ANSI doesn't allow the assignment from one to the other.
+ * (although most, but not all, compilers are prepared to do it)
+ */
MGVTBL_SET(
PL_vtbl_sv,
MEMBER_TO_FPTR(Perl_magic_get),
MEMBER_TO_FPTR(Perl_magic_set),
MEMBER_TO_FPTR(Perl_magic_len),
MGVTBL_SET(
PL_vtbl_sv,
MEMBER_TO_FPTR(Perl_magic_get),
MEMBER_TO_FPTR(Perl_magic_set),
MEMBER_TO_FPTR(Perl_magic_len),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_env,
);
MGVTBL_SET(
PL_vtbl_env,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_set_all_env),
MEMBER_TO_FPTR(Perl_magic_set_all_env),
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_clear_all_env),
MEMBER_TO_FPTR(Perl_magic_clear_all_env),
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_envelem,
);
MGVTBL_SET(
PL_vtbl_envelem,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setenv),
MEMBER_TO_FPTR(Perl_magic_setenv),
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_clearenv),
MEMBER_TO_FPTR(Perl_magic_clearenv),
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+ 0
);
);
-/* For now, hints magic will also use vtbl_sig, because it is all
NULL
*/
+/* For now, hints magic will also use vtbl_sig, because it is all
0
*/
MGVTBL_SET(
PL_vtbl_sig,
MGVTBL_SET(
PL_vtbl_sig,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
#ifdef PERL_MICRO
MGVTBL_SET(
PL_vtbl_sigelem,
);
#ifdef PERL_MICRO
MGVTBL_SET(
PL_vtbl_sigelem,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
#else
);
#else
@@
-4651,338
+4671,338
@@
MGVTBL_SET(
PL_vtbl_sigelem,
MEMBER_TO_FPTR(Perl_magic_getsig),
MEMBER_TO_FPTR(Perl_magic_setsig),
PL_vtbl_sigelem,
MEMBER_TO_FPTR(Perl_magic_getsig),
MEMBER_TO_FPTR(Perl_magic_setsig),
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_clearsig),
MEMBER_TO_FPTR(Perl_magic_clearsig),
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+ 0
);
#endif
MGVTBL_SET(
PL_vtbl_pack,
);
#endif
MGVTBL_SET(
PL_vtbl_pack,
-
NULL
,
-
NULL
,
+
0
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_sizepack),
MEMBER_TO_FPTR(Perl_magic_wipepack),
MEMBER_TO_FPTR(Perl_magic_sizepack),
MEMBER_TO_FPTR(Perl_magic_wipepack),
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_packelem,
MEMBER_TO_FPTR(Perl_magic_getpack),
MEMBER_TO_FPTR(Perl_magic_setpack),
);
MGVTBL_SET(
PL_vtbl_packelem,
MEMBER_TO_FPTR(Perl_magic_getpack),
MEMBER_TO_FPTR(Perl_magic_setpack),
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_clearpack),
MEMBER_TO_FPTR(Perl_magic_clearpack),
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_dbline,
);
MGVTBL_SET(
PL_vtbl_dbline,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setdbline),
MEMBER_TO_FPTR(Perl_magic_setdbline),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_isa,
);
MGVTBL_SET(
PL_vtbl_isa,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setisa),
MEMBER_TO_FPTR(Perl_magic_setisa),
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setisa),
MEMBER_TO_FPTR(Perl_magic_setisa),
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_isaelem,
);
MGVTBL_SET(
PL_vtbl_isaelem,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setisa),
MEMBER_TO_FPTR(Perl_magic_setisa),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET_CONST_MAGIC_GET(
PL_vtbl_arylen,
MEMBER_TO_FPTR(Perl_magic_getarylen),
MEMBER_TO_FPTR(Perl_magic_setarylen),
);
MGVTBL_SET_CONST_MAGIC_GET(
PL_vtbl_arylen,
MEMBER_TO_FPTR(Perl_magic_getarylen),
MEMBER_TO_FPTR(Perl_magic_setarylen),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_arylen_p,
);
MGVTBL_SET(
PL_vtbl_arylen_p,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
+
0
,
+
0
,
+
0
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_freearylen_p),
MEMBER_TO_FPTR(Perl_magic_freearylen_p),
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_mglob,
);
MGVTBL_SET(
PL_vtbl_mglob,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setmglob),
MEMBER_TO_FPTR(Perl_magic_setmglob),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_nkeys,
MEMBER_TO_FPTR(Perl_magic_getnkeys),
MEMBER_TO_FPTR(Perl_magic_setnkeys),
);
MGVTBL_SET(
PL_vtbl_nkeys,
MEMBER_TO_FPTR(Perl_magic_getnkeys),
MEMBER_TO_FPTR(Perl_magic_setnkeys),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_taint,
MEMBER_TO_FPTR(Perl_magic_gettaint),
MEMBER_TO_FPTR(Perl_magic_settaint),
);
MGVTBL_SET(
PL_vtbl_taint,
MEMBER_TO_FPTR(Perl_magic_gettaint),
MEMBER_TO_FPTR(Perl_magic_settaint),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_substr,
MEMBER_TO_FPTR(Perl_magic_getsubstr),
MEMBER_TO_FPTR(Perl_magic_setsubstr),
);
MGVTBL_SET(
PL_vtbl_substr,
MEMBER_TO_FPTR(Perl_magic_getsubstr),
MEMBER_TO_FPTR(Perl_magic_setsubstr),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_vec,
MEMBER_TO_FPTR(Perl_magic_getvec),
MEMBER_TO_FPTR(Perl_magic_setvec),
);
MGVTBL_SET(
PL_vtbl_vec,
MEMBER_TO_FPTR(Perl_magic_getvec),
MEMBER_TO_FPTR(Perl_magic_setvec),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_pos,
MEMBER_TO_FPTR(Perl_magic_getpos),
MEMBER_TO_FPTR(Perl_magic_setpos),
);
MGVTBL_SET(
PL_vtbl_pos,
MEMBER_TO_FPTR(Perl_magic_getpos),
MEMBER_TO_FPTR(Perl_magic_setpos),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_bm,
);
MGVTBL_SET(
PL_vtbl_bm,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setbm),
MEMBER_TO_FPTR(Perl_magic_setbm),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_fm,
);
MGVTBL_SET(
PL_vtbl_fm,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setfm),
MEMBER_TO_FPTR(Perl_magic_setfm),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_uvar,
MEMBER_TO_FPTR(Perl_magic_getuvar),
MEMBER_TO_FPTR(Perl_magic_setuvar),
);
MGVTBL_SET(
PL_vtbl_uvar,
MEMBER_TO_FPTR(Perl_magic_getuvar),
MEMBER_TO_FPTR(Perl_magic_setuvar),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_defelem,
MEMBER_TO_FPTR(Perl_magic_getdefelem),
MEMBER_TO_FPTR(Perl_magic_setdefelem),
);
MGVTBL_SET(
PL_vtbl_defelem,
MEMBER_TO_FPTR(Perl_magic_getdefelem),
MEMBER_TO_FPTR(Perl_magic_setdefelem),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_regexp,
);
MGVTBL_SET(
PL_vtbl_regexp,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setregexp),
MEMBER_TO_FPTR(Perl_magic_setregexp),
-
NULL
,
-
NULL
,
+
0
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_freeregexp),
MEMBER_TO_FPTR(Perl_magic_freeregexp),
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_regdata,
);
MGVTBL_SET(
PL_vtbl_regdata,
-
NULL
,
-
NULL
,
+
0
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_regdata_cnt),
MEMBER_TO_FPTR(Perl_magic_regdata_cnt),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_regdatum,
MEMBER_TO_FPTR(Perl_magic_regdatum_get),
MEMBER_TO_FPTR(Perl_magic_regdatum_set),
);
MGVTBL_SET(
PL_vtbl_regdatum,
MEMBER_TO_FPTR(Perl_magic_regdatum_get),
MEMBER_TO_FPTR(Perl_magic_regdatum_set),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_amagic,
);
MGVTBL_SET(
PL_vtbl_amagic,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setamagic),
MEMBER_TO_FPTR(Perl_magic_setamagic),
-
NULL
,
-
NULL
,
+
0
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setamagic),
MEMBER_TO_FPTR(Perl_magic_setamagic),
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_amagicelem,
);
MGVTBL_SET(
PL_vtbl_amagicelem,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setamagic),
MEMBER_TO_FPTR(Perl_magic_setamagic),
-
NULL
,
-
NULL
,
+
0
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setamagic),
MEMBER_TO_FPTR(Perl_magic_setamagic),
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_backref,
);
MGVTBL_SET(
PL_vtbl_backref,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
+
0
,
+
0
,
+
0
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_killbackrefs),
MEMBER_TO_FPTR(Perl_magic_killbackrefs),
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_ovrld,
);
MGVTBL_SET(
PL_vtbl_ovrld,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
+
0
,
+
0
,
+
0
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_freeovrld),
MEMBER_TO_FPTR(Perl_magic_freeovrld),
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+ 0
);
MGVTBL_SET(
PL_vtbl_utf8,
);
MGVTBL_SET(
PL_vtbl_utf8,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setutf8),
MEMBER_TO_FPTR(Perl_magic_setutf8),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
#ifdef USE_LOCALE_COLLATE
MGVTBL_SET(
PL_vtbl_collxfrm,
);
#ifdef USE_LOCALE_COLLATE
MGVTBL_SET(
PL_vtbl_collxfrm,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_setcollxfrm),
MEMBER_TO_FPTR(Perl_magic_setcollxfrm),
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+
0
,
+
0
,
+ 0
);
#endif
MGVTBL_SET(
PL_vtbl_hintselem,
);
#endif
MGVTBL_SET(
PL_vtbl_hintselem,
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_sethint),
MEMBER_TO_FPTR(Perl_magic_sethint),
-
NULL
,
+
0
,
MEMBER_TO_FPTR(Perl_magic_clearhint),
MEMBER_TO_FPTR(Perl_magic_clearhint),
-
NULL
,
-
NULL
,
-
NULL
,
- NULL
+
0
,
+
0
,
+
0
,
+ 0
);
#include "overload.h"
);
#include "overload.h"