X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=383ae2d5cf49c3749f3b61fb9d2400d277cec641;hb=5b25816d784c59dfc586dc4501214e8b992de8ae;hp=4d9a94edc566bbf56202e8c035761d14d6ed6d64;hpb=f51dccfda70076767ac517953f3cc5b809d6d728;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index 4d9a94e..383ae2d 100644 --- a/perl.h +++ b/perl.h @@ -21,6 +21,10 @@ #define USE_STDIO #endif /* PERL_FOR_X2P */ +#if defined(DGUX) +#include +#endif + #define VOIDUSED 1 #ifdef PERL_MICRO # include "uconfig.h" @@ -42,6 +46,10 @@ /* See L for detailed notes on * PERL_IMPLICIT_CONTEXT and PERL_IMPLICIT_SYS */ +/* Note that from here --> to <-- the same logic is + * repeated in makedef.pl, so be certain to update + * both places when editing. */ + #ifdef PERL_IMPLICIT_SYS /* PERL_IMPLICIT_SYS implies PerlMemShared != PerlMem so use slab allocator to avoid lots of MUTEX overhead @@ -69,6 +77,14 @@ # endif #endif +/* Use the reentrant APIs like localtime_r and getpwent_r */ +/* Win32 has naturally threadsafe libraries, no need to use any _r variants. */ +#if defined(USE_ITHREADS) && !defined(USE_REENTRANT_API) && !defined(NETWARE) && !defined(WIN32) && !defined(__APPLE__) +# define USE_REENTRANT_API +#endif + +/* <--- here ends the logic shared by perl.h and makedef.pl */ + #ifdef PERL_IMPLICIT_CONTEXT # ifdef USE_5005THREADS struct perl_thread; @@ -115,7 +131,11 @@ struct perl_thread; #endif #ifdef HASATTRIBUTE -# define PERL_UNUSED_DECL __attribute__((unused)) +# if defined(__GNUC__) && defined(__cplusplus) +# define PERL_UNUSED_DECL +# else +# define PERL_UNUSED_DECL __attribute__((unused)) +# endif #else # define PERL_UNUSED_DECL #endif @@ -328,12 +348,6 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER)); # endif #endif -/* Use the reentrant APIs like localtime_r and getpwent_r */ -/* Win32 has naturally threadsafe libraries, no need to use any _r variants. */ -#if defined(USE_ITHREADS) && !defined(USE_REENTRANT_API) && !defined(WIN32) -# define USE_REENTRANT_API -#endif - /* HP-UX 10.X CMA (Common Multithreaded Architecure) insists that pthread.h must be included before all other header files. */ @@ -1223,7 +1237,7 @@ typedef NVTYPE NV; # else # define Perl_frexp(x,y) ((long double)frexp((double)(x),y)) # endif -# ifndef Perl_isinf +# ifndef Perl_isnan # ifdef HAS_ISNANL # define Perl_isnan(x) isnanl(x) # endif @@ -1331,7 +1345,7 @@ typedef NVTYPE NV; #if !defined(Perl_fp_class) && defined(HAS_FPCLASSIFY) # include # define Perl_fp_class(x) fpclassify(x) -# define Perl_fp_class_nan(x) (fp_classify(x)==FP_SNAN|FP|_fp_classify(x)==QNAN) +# define Perl_fp_class_nan(x) (fp_classify(x)==FP_SNAN||fp_classify(x)==FP_QNAN) # define Perl_fp_class_inf(x) (fp_classify(x)==FP_INFINITE) # define Perl_fp_class_norm(x) (fp_classify(x)==FP_NORMAL) # define Perl_fp_class_denorm(x) (fp_classify(x)==FP_SUBNORMAL) @@ -2352,11 +2366,12 @@ Gid_t getegid (void); #define DEBUG_S_FLAG 0x00010000 /* 65536 */ #define DEBUG_T_FLAG 0x00020000 /* 131072 */ #define DEBUG_R_FLAG 0x00040000 /* 262144 */ -#define DEBUG_MASK 0x0007FFFF /* mask of all the standard flags */ +#define DEBUG_J_FLAG 0x00080000 /* 524288 */ +#define DEBUG_MASK 0x000FFFFF /* mask of all the standard flags */ #define DEBUG_DB_RECURSE_FLAG 0x40000000 -#define DEBUG_TOP_FLAG 0x80000000 /* XXX what's this for ??? */ - +#define DEBUG_TOP_FLAG 0x80000000 /* XXX what's this for ??? Signal + that something was done? */ # define DEBUG_p_TEST_ (PL_debug & DEBUG_p_FLAG) # define DEBUG_s_TEST_ (PL_debug & DEBUG_s_FLAG) @@ -2377,6 +2392,7 @@ Gid_t getegid (void); # define DEBUG_S_TEST_ (PL_debug & DEBUG_S_FLAG) # define DEBUG_T_TEST_ (PL_debug & DEBUG_T_FLAG) # define DEBUG_R_TEST_ (PL_debug & DEBUG_R_FLAG) +# define DEBUG_J_TEST_ (PL_debug & DEBUG_J_FLAG) #ifdef DEBUGGING @@ -2402,6 +2418,7 @@ Gid_t getegid (void); # define DEBUG_S_TEST DEBUG_S_TEST_ # define DEBUG_T_TEST DEBUG_T_TEST_ # define DEBUG_R_TEST DEBUG_R_TEST_ +# define DEBUG_J_TEST DEBUG_J_TEST_ # define DEB(a) a # define DEBUG(a) if (PL_debug) a @@ -2464,6 +2481,7 @@ Gid_t getegid (void); # define DEBUG_S_TEST (0) # define DEBUG_T_TEST (0) # define DEBUG_R_TEST (0) +# define DEBUG_J_TEST (0) # define DEB(a) # define DEBUG(a) @@ -2680,7 +2698,9 @@ END_EXTERN_C char *crypt (); /* Maybe more hosts will need the unprototyped version */ # else # if !defined(WIN32) && !defined(VMS) +#ifndef crypt char *crypt (const char*, const char*); +#endif # endif /* !WIN32 */ # endif /* !NeXT && !__NeXT__ */ # ifndef DONT_DECLARE_STD @@ -2695,7 +2715,9 @@ Off_t lseek (int,Off_t,int); # endif # endif # endif /* !DONT_DECLARE_STD */ +#ifndef getlogin char *getlogin (void); +#endif #endif /* !__cplusplus */ #ifdef UNLINK_ALL_VERSIONS /* Currently only makes sense for VMS */ @@ -2775,6 +2797,7 @@ typedef Sighandler_t Sigsave_t; typedef int (CPERLscope(*runops_proc_t)) (pTHX); typedef void (CPERLscope(*share_proc_t)) (pTHX_ SV *sv); +typedef int (CPERLscope(*thrhook_proc_t)) (pTHX); typedef OP* (CPERLscope(*PPADDR_t)[]) (pTHX); /* _ (for $_) must be first in the following list (DEFSV requires it) */ @@ -3165,7 +3188,7 @@ struct perl_debug_pad { }; #define PERL_DEBUG_PAD(i) &(PL_debug_pad.pad[i]) -#define PERL_DEBUG_PAD_ZERO(i) (sv_setpvn(PERL_DEBUG_PAD(i), "", 0), PERL_DEBUG_PAD(i)) +#define PERL_DEBUG_PAD_ZERO(i) (SvPVX(PERL_DEBUG_PAD(i))[0] = 0, SvCUR(PERL_DEBUG_PAD(i)) = 0, PERL_DEBUG_PAD(i)) /* Enable variables which are pointers to functions */ typedef void (CPERLscope(*peep_t))(pTHX_ OP* o); @@ -3694,7 +3717,7 @@ typedef struct am_table_short AMTS; #define STORE_NUMERIC_STANDARD_SET_LOCAL() /**/ #define RESTORE_NUMERIC_LOCAL() /**/ #define RESTORE_NUMERIC_STANDARD() /**/ -#define Atof Perl_atof +#define Atof my_atof #define IN_LOCALE_RUNTIME 0 #endif /* !USE_LOCALE_NUMERIC */