diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2009-03-18 20:06:12 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2009-03-18 20:06:12 (GMT) |
commit | bd7926478de92a2a0ef4440e1a9ae61b706a80d2 (patch) | |
tree | f92ef0133e96195e1875cc74b046474aeb7be155 /PC | |
parent | e7f45b8e5948d7367c3754b0506b082d1296138f (diff) | |
download | cpython-bd7926478de92a2a0ef4440e1a9ae61b706a80d2.zip cpython-bd7926478de92a2a0ef4440e1a9ae61b706a80d2.tar.gz cpython-bd7926478de92a2a0ef4440e1a9ae61b706a80d2.tar.bz2 |
Issue #4258: Make it possible to use 30-bit digits for PyLongs:
- new configure option --enable-big-digits
- new structseq sys.int_info giving information about the internal format
By default, 30-bit digits are enabled on 64-bit machines but
disabled on 32-bit machines.
Diffstat (limited to 'PC')
-rw-r--r-- | PC/pyconfig.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/PC/pyconfig.h b/PC/pyconfig.h index d110476..04abc1f 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -396,6 +396,42 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ #endif +/* define signed and unsigned exact-width 32-bit and 64-bit types, used in the + implementation of Python long integers. */ +#ifndef PY_UINT32_T +#if SIZEOF_INT == 4 +#define HAVE_UINT32_T 1 +#define PY_UINT32_T unsigned int +#elif SIZEOF_LONG == 4 +#define HAVE_UINT32_T 1 +#define PY_UINT32_T unsigned long +#endif +#endif + +#ifndef PY_UINT64_T +#if SIZEOF_LONG_LONG == 8 +#define HAVE_UINT64_T 1 +#define PY_UINT64_T unsigned PY_LONG_LONG +#endif +#endif + +#ifndef PY_INT32_T +#if SIZEOF_INT == 4 +#define HAVE_INT32_T 1 +#define PY_INT32_T int +#elif SIZEOF_LONG == 4 +#define HAVE_INT32_T 1 +#define PY_INT32_T long +#endif +#endif + +#ifndef PY_INT64_T +#if SIZEOF_LONG_LONG == 8 +#define HAVE_INT64_T 1 +#define PY_INT64_T PY_LONG_LONG +#endif +#endif + /* Fairly standard from here! */ /* Define to 1 if you have the `copysign' function. */ |