expecting an int), but the disadvantage that an I32 is not 32 bits.
Andy Dougherty August 1996
- In the future, we may perhaps want to think about something like
- #if INTSIZE == 4
- typedef I32 int;
- #else
- # if LONGSIZE == 4
- typedef I32 long;
- # else
- # if SHORTSIZE == 4
- typedef I32 short;
- # else
- typedef I32 int;
- # endif
- # endif
- #endif
-
- except that still won't work if a system has no integral type
- with a size that is 32 bytes.
-
- Further, we need to know about PTRSIZE == sizeof(void *) and
- DOUBLESIZE == sizeof(double) if we really want to try to handle
- 32/64-bit combinations. Finally, we might also need to know
- HAS_LONG_DOUBLE and LONG_DOUBLESIZE.
-
- For the moment, these are only mentioned here so metaconfig will
- construct Configure to figure out the various sizes.
+ There is no guarantee that there is *any* integral type with
+ exactly 32 bits. It is perfectly legal for a system to have
+ sizeof(short) == sizeof(int) == sizeof(long) == 8.
+
+ Similarly, there is no guarantee that I16 and U16 have exactly 16
+ bits.
+
+ For dealing with issues that may arise from various 32/64-bit
+ systems, we will ask Configure to check out
+ SHORTSIZE == sizeof(short)
+ INTSIZE == sizeof(int)
+ LONGSIZE == sizeof(long)
+ LONGLONGSIZE == sizeof(long long) (if HAS_LONG_LONG)
+ PTRSIZE == sizeof(void *)
+ DOUBLESIZE == sizeof(double)
+ LONG_DOUBLESIZE == sizeof(long double) (if HAS_LONG_DOUBLE).
+ Most of these are currently unused, but they are mentioned here so
+ metaconfig will include the appropriate tests in Configure and
+ we can then start to consider how best to deal with long long
+ variables.
+ Andy Dougherty April 1998
*/
typedef char I8;
#define U16_MAX PERL_USHORT_MAX
#define U16_MIN PERL_USHORT_MIN
-#if BYTEORDER > 0x4321
+#if LONGSIZE > 4
typedef int I32;
typedef unsigned int U32;
# define I32_MAX PERL_INT_MAX
*/
#ifndef lint
+
+#define NEWSV(x,len) newSV(len)
+
#ifndef LEAKTEST
#define New(x,v,n,t) (v = (t*)safemalloc((MEM_SIZE)((n)*sizeof(t))))
#define Renewc(v,n,t,c) \
(v = (c*)saferealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))
#define Safefree(d) safefree((Malloc_t)(d))
-#define NEWSV(x,len) newSV(len)
#else /* LEAKTEST */
#define Renewc(v,n,t,c) \
(v = (c*)safexrealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))
#define Safefree(d) safexfree((Malloc_t)(d))
-#define NEWSV(x,len) newSV(x,len)
#define MAXXCOUNT 1400
#define MAXY_SIZE 80