avoid $@-clearing sideeffect of require in Carp
[p5sagit/p5-mst-13.2.git] / perl.h
diff --git a/perl.h b/perl.h
index 2da6910..0d3f0b8 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1,6 +1,6 @@
 /*    perl.h
  *
- *    Copyright (c) 1987-1997, Larry Wall
+ *    Copyright (c) 1987-2000, Larry Wall
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
 /* See L<perlguts/"The Perl API"> for detailed notes on
  * PERL_IMPLICIT_CONTEXT and PERL_IMPLICIT_SYS */
 
+#ifdef USE_ITHREADS
+#  if !defined(MULTIPLICITY) && !defined(PERL_OBJECT)
+#    define MULTIPLICITY
+#  endif
+#endif
+
 #ifdef USE_THREADS
 #  ifndef PERL_IMPLICIT_CONTEXT
 #    define PERL_IMPLICIT_CONTEXT
 #  endif
 #endif
 
-#if defined(USE_ITHREADS) && !defined(MULTIPLICITY) && !defined(PERL_OBJECT)
-#  include "error: USE_ITHREADS must be built with MULTIPLICITY"
-#endif
-
 #ifdef PERL_OBJECT
 
 /* PERL_OBJECT explained  - DickH and DougL @ ActiveState.com
@@ -527,6 +529,19 @@ Malloc_t Perl_realloc (Malloc_t where, MEM_SIZE nbytes);
  * that causes clashes with case-insensitive linkers */
 Free_t   Perl_mfree (Malloc_t where);
 
+typedef struct perl_mstats perl_mstats_t;
+
+struct perl_mstats {
+    unsigned long *nfree;
+    unsigned long *ntotal;
+    long topbucket, topbucket_ev, topbucket_odd, totfree, total, total_chain;
+    long total_sbrk, sbrks, sbrk_good, sbrk_slack, start_slack, sbrked_remains;
+    long minbucket;
+    /* Level 1 info */
+    unsigned long *bucket_mem_size;
+    unsigned long *bucket_available_size;
+};
+
 #  define safemalloc  Perl_malloc
 #  define safecalloc  Perl_calloc
 #  define saferealloc Perl_realloc
@@ -1710,7 +1725,7 @@ typedef pthread_key_t     perl_key;
 #   endif
 #endif
 
-#if defined(CYGWIN)
+#if defined(__CYGWIN__)
 /* USEMYBINMODE
  *   This symbol, if defined, indicates that the program should
  *   use the routine my_binmode(FILE *fp, char iotype) to insure
@@ -2040,7 +2055,7 @@ char *crypt (const char*, const char*);
 #    ifndef getenv
 char *getenv (const char*);
 #    endif /* !getenv */
-#ifndef EPOC
+#if !defined(EPOC) && !(defined(__hpux) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64)
 Off_t lseek (int,Off_t,int);
 #endif
 #  endif /* !DONT_DECLARE_STD */
@@ -2463,8 +2478,8 @@ enum {            /* pass one of these to get_vtbl */
 #define HINT_INTEGER           0x00000001
 #define HINT_STRICT_REFS       0x00000002
 /* #define HINT_notused4       0x00000004 */
-#define HINT_UTF8              0x00000008
-#define HINT_BYTE              0x00000010
+#define HINT_BYTE              0x00000008
+/* #define HINT_notused10      0x00000010 */
                                /* Note: 20,40,80 used for NATIVE_HINTS */
 
 #define HINT_BLOCK_SCOPE       0x00000100
@@ -2483,6 +2498,7 @@ enum {            /* pass one of these to get_vtbl */
 #define HINT_RE_EVAL           0x00200000
 
 #define HINT_FILETEST_ACCESS   0x00400000
+#define HINT_UTF8              0x00800000
 
 /* Various states of an input record separator SV (rs, nrs) */
 #define RsSNARF(sv)   (! SvOK(sv))
@@ -2947,16 +2963,22 @@ typedef struct am_table_short AMTS;
 #   endif
 #endif /* _FASTMATH */
 
-#define PERLDB_ALL     0x3f            /* No _NONAME, _GOTO */
-#define PERLDBf_SUB    0x01            /* Debug sub enter/exit. */
-#define PERLDBf_LINE   0x02            /* Keep line #. */
-#define PERLDBf_NOOPT  0x04            /* Switch off optimizations. */
-#define PERLDBf_INTER  0x08            /* Preserve more data for
-                                          later inspections.  */
-#define PERLDBf_SUBLINE        0x10            /* Keep subr source lines. */
-#define PERLDBf_SINGLE 0x20            /* Start with single-step on. */
-#define PERLDBf_NONAME 0x40            /* For _SUB: no name of the subr. */
-#define PERLDBf_GOTO   0x80            /* Report goto: call DB::goto. */
+#define PERLDB_ALL             (PERLDBf_SUB    | PERLDBf_LINE  |       \
+                                PERLDBf_NOOPT  | PERLDBf_INTER |       \
+                                PERLDBf_SUBLINE| PERLDBf_SINGLE|       \
+                                PERLDBf_NAMEEVAL| PERLDBf_NAMEANON)
+                                       /* No _NONAME, _GOTO */
+#define PERLDBf_SUB            0x01    /* Debug sub enter/exit */
+#define PERLDBf_LINE           0x02    /* Keep line # */
+#define PERLDBf_NOOPT          0x04    /* Switch off optimizations */
+#define PERLDBf_INTER          0x08    /* Preserve more data for
+                                          later inspections  */
+#define PERLDBf_SUBLINE                0x10    /* Keep subr source lines */
+#define PERLDBf_SINGLE         0x20    /* Start with single-step on */
+#define PERLDBf_NONAME         0x40    /* For _SUB: no name of the subr */
+#define PERLDBf_GOTO           0x80    /* Report goto: call DB::goto */
+#define PERLDBf_NAMEEVAL       0x100   /* Informative names for evals */
+#define PERLDBf_NAMEANON       0x200   /* Informative names for anon subs */
 
 #define PERLDB_SUB     (PL_perldb && (PL_perldb & PERLDBf_SUB))
 #define PERLDB_LINE    (PL_perldb && (PL_perldb & PERLDBf_LINE))
@@ -2966,6 +2988,8 @@ typedef struct am_table_short AMTS;
 #define PERLDB_SINGLE  (PL_perldb && (PL_perldb & PERLDBf_SINGLE))
 #define PERLDB_SUB_NN  (PL_perldb && (PL_perldb & (PERLDBf_NONAME)))
 #define PERLDB_GOTO    (PL_perldb && (PL_perldb & PERLDBf_GOTO))
+#define PERLDB_NAMEEVAL        (PL_perldb && (PL_perldb & PERLDBf_NAMEEVAL))
+#define PERLDB_NAMEANON        (PL_perldb && (PL_perldb & PERLDBf_NAMEANON))
 
 
 #ifdef USE_LOCALE_NUMERIC
@@ -3001,25 +3025,26 @@ typedef struct am_table_short AMTS;
 
 #endif /* !USE_LOCALE_NUMERIC */
 
-#if !defined(Atol) && defined(USE_LONG_LONG) && defined(HAS_LONG_LONG)
+#if !defined(Atol) && defined(IV_IS_QUAD) && QUADKIND == QUAD_IS_LONG_LONG
 #   if !defined(Atol) && defined(HAS_STRTOLL)
 #       define Atol(s) strtoll(s, (char**)NULL, 10)
 #   endif
 #   if !defined(Atol) && defined(HAS_ATOLL)
 #       define Atol atoll
 #   endif
-#endif
 /* is there atoq() anywhere? */
+#endif
 #if !defined(Atol)
 #   define Atol atol /* we assume atol being available anywhere */
 #endif
 
-#if !defined(Strtoul) && defined(USE_LONG_LONG) && defined(HAS_LONG_LONG) \
-       && defined(HAS_STRTOULL)
-#   define Strtoul strtoull
+#if !defined(Strtoul) && defined(UV_IS_QUAD) && QUADKIND == QUAD_IS_LONG_LONG
+#    if !defined(Strtoul) && defined(HAS_STRTOULL)
+#       define Strtoul strtoull
+#    endif
 #endif
 /* is there atouq() anywhere? */
-#if !defined(Strtoul) && defined(USE_64_BITS) && defined(HAS_STRTOUQ)
+#if !defined(Strtoul) && defined(HAS_STRTOUQ)
 #   define Strtoul strtouq
 #endif
 #if !defined(Strtoul)
@@ -3158,4 +3183,27 @@ typedef struct am_table_short AMTS;
 #include "patchlevel.h"
 #undef PERL_PATCHLEVEL_H_IMPLICIT
 
+/* Mention
+   
+   NV_PRESERVES_UV
+
+   HAS_ICONV
+   I_ICONV
+
+   HAS_MKSTEMP
+   HAS_MKSTEMPS
+   HAS_MKDTEMP
+
+   HAS_GETCWD
+
+   HAS-MMAP
+   HAS_MPROTECT
+   HAS_MSYNC
+   HAS_MADVSISE
+   HAS_MUNMAP
+   I_SYSMMAN
+   Mmap_t
+
+   so that Configure picks them up. */
+
 #endif /* Include guard */