X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=53a22911b0aa6d91b44266528ff89118ecb09397;hb=33b5f13c2468a991d2b495f02a62b59163be82af;hp=7d4180d3a4c96449f7f474a4debd58d8dfbc3981;hpb=b37c2d43c8bccbefe3985273e9661833102148d0;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index 7d4180d..53a2291 100644 --- a/perl.h +++ b/perl.h @@ -813,17 +813,14 @@ int usleep(unsigned int); #define PERL_ARENA_SIZE 4080 #endif -/* enable ARENA_SETS by default, but allow disabling */ -#ifndef ARENASETS -#define ARENASETS 1 -#endif - #endif /* PERL_CORE */ /* We no longer default to creating a new SV for GvSV. Do this before embed. */ #ifndef PERL_CREATE_GVSV -#define PERL_DONT_CREATE_GVSV +# ifndef PERL_DONT_CREATE_GVSV +# define PERL_DONT_CREATE_GVSV +# endif #endif #if !defined(HAS_WAITPID) && !defined(HAS_WAIT4) || defined(HAS_WAITPID_RUNTIME) @@ -839,6 +836,10 @@ int usleep(unsigned int); */ #if !defined(PERL_FOR_X2P) && !(defined(WIN32)||defined(VMS)) # include "embed.h" +# ifndef PERL_MAD +# undef op_getmad +# define op_getmad(arg,pegop,slot) /**/ +# endif #endif #define MEM_SIZE Size_t @@ -2144,6 +2145,11 @@ struct RExC_state_t; typedef MEM_SIZE STRLEN; +#ifdef PERL_MAD +typedef struct token TOKEN; +typedef struct madprop MADPROP; +typedef struct nexttoken NEXTTOKE; +#endif typedef struct op OP; typedef struct cop COP; typedef struct unop UNOP; @@ -2319,6 +2325,10 @@ typedef struct clone_params CLONE_PARAMS; #if defined(VMS) # include "vmsish.h" # include "embed.h" +# ifndef PERL_MAD +# undef op_getmad +# define op_getmad(arg,pegop,slot) /**/ +# endif # define ISHISH "vms" #endif @@ -2349,6 +2359,10 @@ typedef struct clone_params CLONE_PARAMS; #ifdef __SYMBIAN32__ # include "symbian/symbianish.h" # include "embed.h" +# ifndef PERL_MAD +# undef op_getmad +# define op_getmad(arg,pegop,slot) /**/ +# endif # define ISHISH "symbian" #endif @@ -2962,13 +2976,16 @@ typedef pthread_key_t perl_key; # define NORETURN_FUNCTION_END /* NOTREACHED */ return 0 #endif -#ifdef HASBUILTIN_EXPECT +#ifdef HAS_BUILTIN_EXPECT # define EXPECT(expr,val) __builtin_expect(expr,val) #else # define EXPECT(expr,val) (expr) #endif #define LIKELY(cond) EXPECT(cond,1) #define UNLIKELY(cond) EXPECT(cond,0) +#ifdef HAS_BUILTIN_CHOOSE_EXPR +/* placeholder */ +#endif /* Some unistd.h's give a prototype for pause() even though HAS_PAUSE ends up undefined. This causes the #define @@ -3062,6 +3079,23 @@ typedef struct crypt_data { /* straight from /usr/include/crypt.h */ # define USE_HASH_SEED #endif +/* Win32 defines a type 'WORD' in windef.h. This conflicts with the enumerator + * 'WORD' defined in perly.h. The yytokentype enum is only a debugging aid, so + * it's not really needed. + */ +#if defined(WIN32) +# define YYTOKENTYPE +#endif +#include "perly.h" + +#ifdef PERL_MAD +struct nexttoken { + YYSTYPE next_val; /* value of next token, if any */ + I32 next_type; /* type of next token */ + MADPROP *next_mad; /* everything else about that token */ +}; +#endif + #include "regexp.h" #include "sv.h" #include "util.h" @@ -4080,15 +4114,6 @@ END_EXTERN_C #endif #endif -/* Win32 defines a type 'WORD' in windef.h. This conflicts with the enumerator - * 'WORD' defined in perly.h. The yytokentype enum is only a debugging aid, so - * it's not really needed. - */ -#if defined(WIN32) -# define YYTOKENTYPE -#endif -#include "perly.h" - #define LEX_NOTPARSING 11 /* borrowed from toke.c */ typedef enum { @@ -4321,6 +4346,12 @@ struct tempsym; /* defined in pp_pack.c */ #if !defined(PERL_FOR_X2P) # include "embedvar.h" #endif +#ifndef PERL_MAD +# undef PL_madskills +# undef PL_xmlfp +# define PL_madskills 0 +# define PL_xmlfp 0 +#endif /* Now include all the 'global' variables * If we don't have threads or multiple interpreters @@ -4343,6 +4374,10 @@ END_EXTERN_C #if defined(WIN32) /* Now all the config stuff is setup we can include embed.h */ # include "embed.h" +# ifndef PERL_MAD +# undef op_getmad +# define op_getmad(arg,pegop,slot) /**/ +# endif #endif #ifndef PERL_GLOBAL_STRUCT @@ -4361,11 +4396,13 @@ END_EXTERN_C START_EXTERN_C #ifdef DOINIT -# define MGVTBL_SET(var,a,b,c,d,e,f,g) EXT MGVTBL var = {a,b,c,d,e,f,g} -# define MGVTBL_SET_CONST_MAGIC_GET(var,a,b,c,d,e,f,g) EXT MGVTBL var = {(int (*)(pTHX_ SV *, MAGIC *))a,b,c,d,e,f,g} /* Like MGVTBL_SET but with the get magic having a const MG* */ +# define MGVTBL_SET(var,a,b,c,d,e,f,g,h) EXT MGVTBL var = {a,b,c,d,e,f,g,h} +/* Like MGVTBL_SET but with the get magic having a const MG* */ +# define MGVTBL_SET_CONST_MAGIC_GET(var,a,b,c,d,e,f,g,h) EXT MGVTBL var \ + = {(int (*)(pTHX_ SV *, MAGIC *))a,b,c,d,e,f,g,h} #else -# define MGVTBL_SET(var,a,b,c,d,e,f,g) EXT MGVTBL var -# define MGVTBL_SET_CONST_MAGIC_GET(var,a,b,c,d,e,f,g) EXT MGVTBL var +# define MGVTBL_SET(var,a,b,c,d,e,f,g,h) EXT MGVTBL var +# define MGVTBL_SET_CONST_MAGIC_GET(var,a,b,c,d,e,f,g,h) EXT MGVTBL var #endif MGVTBL_SET( @@ -4376,6 +4413,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4387,6 +4425,7 @@ MGVTBL_SET( MEMBER_TO_FPTR(Perl_magic_clear_all_env), NULL, NULL, + NULL, NULL ); @@ -4398,6 +4437,7 @@ MGVTBL_SET( MEMBER_TO_FPTR(Perl_magic_clearenv), NULL, NULL, + NULL, NULL ); @@ -4409,13 +4449,21 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); #ifdef PERL_MICRO MGVTBL_SET( PL_vtbl_sigelem, - NULL, NULL, NULL, NULL, NULL, NULL, NULL + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL ); #else @@ -4427,6 +4475,7 @@ MGVTBL_SET( MEMBER_TO_FPTR(Perl_magic_clearsig), NULL, NULL, + NULL, NULL ); #endif @@ -4439,6 +4488,7 @@ MGVTBL_SET( MEMBER_TO_FPTR(Perl_magic_wipepack), NULL, NULL, + NULL, NULL ); @@ -4450,6 +4500,7 @@ MGVTBL_SET( MEMBER_TO_FPTR(Perl_magic_clearpack), NULL, NULL, + NULL, NULL ); @@ -4461,6 +4512,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4472,6 +4524,7 @@ MGVTBL_SET( MEMBER_TO_FPTR(Perl_magic_setisa), NULL, NULL, + NULL, NULL ); @@ -4483,6 +4536,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4494,6 +4548,7 @@ MGVTBL_SET_CONST_MAGIC_GET( NULL, NULL, NULL, + NULL, NULL ); @@ -4505,6 +4560,7 @@ MGVTBL_SET( NULL, MEMBER_TO_FPTR(Perl_magic_freearylen_p), NULL, + NULL, NULL ); @@ -4516,6 +4572,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4527,6 +4584,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4538,6 +4596,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4549,6 +4608,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4560,6 +4620,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4571,6 +4632,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4582,6 +4644,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4593,6 +4656,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4604,6 +4668,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4615,6 +4680,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4626,6 +4692,7 @@ MGVTBL_SET( NULL, MEMBER_TO_FPTR(Perl_magic_freeregexp), NULL, + NULL, NULL ); @@ -4637,6 +4704,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4648,6 +4716,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); @@ -4659,6 +4728,7 @@ MGVTBL_SET( NULL, MEMBER_TO_FPTR(Perl_magic_setamagic), NULL, + NULL, NULL ); @@ -4670,6 +4740,7 @@ MGVTBL_SET( NULL, MEMBER_TO_FPTR(Perl_magic_setamagic), NULL, + NULL, NULL ); @@ -4681,6 +4752,7 @@ MGVTBL_SET( NULL, MEMBER_TO_FPTR(Perl_magic_killbackrefs), NULL, + NULL, NULL ); @@ -4692,6 +4764,7 @@ MGVTBL_SET( NULL, MEMBER_TO_FPTR(Perl_magic_freeovrld), NULL, + NULL, NULL ); @@ -4703,6 +4776,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); #ifdef USE_LOCALE_COLLATE @@ -4714,6 +4788,7 @@ MGVTBL_SET( NULL, NULL, NULL, + NULL, NULL ); #endif