ext\ExtUtils\t\Embed.t fails test when upgrading a perl with different core headers.
[p5sagit/p5-mst-13.2.git] / perl.h
diff --git a/perl.h b/perl.h
index 0d9ea74..0571d3e 100644 (file)
--- a/perl.h
+++ b/perl.h
 #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))
 #endif
 
 
-/* chars and strings used as regex pattern modifiers 
- * Singlular is a 'c'har, plural is a "string" 
- */
-#define EXEC_PAT_MOD         'e'
-#define KEEPCOPY_PAT_MOD     'k'
-#define ONCE_PAT_MOD         'o'
-#define GLOBAL_PAT_MOD       'g'
-#define CONTINUE_PAT_MOD     'c'
-#define MULTILINE_PAT_MOD    'm'
-#define SINGLE_PAT_MOD       's'
-#define IGNORE_PAT_MOD       'i'
-#define XTENDED_PAT_MOD      'x'
-
-#define ONCE_PAT_MODS        "o"
-#define KEEPCOPY_PAT_MODS    "k"
-#define EXEC_PAT_MODS        "e"
-#define LOOP_PAT_MODS        "gc"
-
-#define STD_PAT_MODS        "msix"
 
-#define EXT_PAT_MODS    ONCE_PAT_MODS   KEEPCOPY_PAT_MODS
-#define QR_PAT_MODS     STD_PAT_MODS    EXT_PAT_MODS 
-#define M_PAT_MODS      QR_PAT_MODS     LOOP_PAT_MODS
-#define S_PAT_MODS      M_PAT_MODS      EXEC_PAT_MODS
 
 
 /*
@@ -3432,6 +3416,10 @@ long vtohl(long n);
 #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)
@@ -3922,7 +3910,7 @@ typedef Sighandler_t Sigsave_t;
 #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                          \
@@ -4381,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_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 */
@@ -4498,11 +4487,6 @@ struct perl_vars *PL_VarsPtr;
 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
@@ -5029,8 +5013,8 @@ struct am_table {
   U32 flags;
   U32 was_ok_sub;
   long was_ok_am;
-  CV* table[NofAMmeth];
   long fallback;
+  CV* table[NofAMmeth];
 };
 struct am_table_short {
   U32 flags;