diff options
Diffstat (limited to 'Include/Python.h')
-rw-r--r-- | Include/Python.h | 99 |
1 files changed, 60 insertions, 39 deletions
diff --git a/Include/Python.h b/Include/Python.h index d6e5b13..a9327b0 100644 --- a/Include/Python.h +++ b/Include/Python.h @@ -8,6 +8,14 @@ #include "pyconfig.h" #include "pymacconfig.h" +/* Cyclic gc is always enabled, starting with release 2.3a1. Supply the + * old symbol for the benefit of extension modules written before then + * that may be conditionalizing on it. The core doesn't use it anymore. + */ +#ifndef WITH_CYCLE_GC +#define WITH_CYCLE_GC 1 +#endif + #include <limits.h> #ifndef UCHAR_MAX @@ -18,7 +26,7 @@ #error "Python's source code assumes C's unsigned char is an 8-bit type." #endif -#if defined(__sgi) && !defined(_SGI_MP_SOURCE) +#if defined(__sgi) && defined(WITH_THREAD) && !defined(_SGI_MP_SOURCE) #define _SGI_MP_SOURCE #endif @@ -32,21 +40,11 @@ #include <errno.h> #endif #include <stdlib.h> -#ifndef MS_WINDOWS +#ifdef HAVE_UNISTD_H #include <unistd.h> #endif #ifdef HAVE_CRYPT_H -#if defined(HAVE_CRYPT_R) && !defined(_GNU_SOURCE) -/* Required for glibc to expose the crypt_r() function prototype. */ -# define _GNU_SOURCE -# define _Py_GNU_SOURCE_FOR_CRYPT -#endif #include <crypt.h> -#ifdef _Py_GNU_SOURCE_FOR_CRYPT -/* Don't leak the _GNU_SOURCE define to other headers. */ -# undef _GNU_SOURCE -# undef _Py_GNU_SOURCE_FOR_CRYPT -#endif #endif /* For size_t? */ @@ -61,15 +59,13 @@ #include <assert.h> #include "pyport.h" -#include "pymacro.h" -/* A convenient way for code to know if clang's memory sanitizer is enabled. */ -#if defined(__has_feature) -# if __has_feature(memory_sanitizer) -# if !defined(_Py_MEMORY_SANITIZER) -# define _Py_MEMORY_SANITIZER -# endif -# endif +/* pyconfig.h or pyport.h may or may not define DL_IMPORT */ +#ifndef DL_IMPORT /* declarations for DLL import/export */ +#define DL_IMPORT(RTYPE) RTYPE +#endif +#ifndef DL_EXPORT /* declarations for DLL import/export */ +#define DL_EXPORT(RTYPE) RTYPE #endif /* Debug-mode build with pymalloc implies PYMALLOC_DEBUG. @@ -82,30 +78,30 @@ #error "PYMALLOC_DEBUG requires WITH_PYMALLOC" #endif #include "pymath.h" -#include "pytime.h" #include "pymem.h" #include "object.h" #include "objimpl.h" -#include "typeslots.h" -#include "pyhash.h" #include "pydebug.h" -#include "bytearrayobject.h" -#include "bytesobject.h" #include "unicodeobject.h" -#include "longobject.h" -#include "longintrepr.h" +#include "intobject.h" #include "boolobject.h" +#include "longobject.h" #include "floatobject.h" +#ifndef WITHOUT_COMPLEX #include "complexobject.h" +#endif #include "rangeobject.h" +#include "stringobject.h" #include "memoryobject.h" +#include "bufferobject.h" +#include "bytesobject.h" +#include "bytearrayobject.h" #include "tupleobject.h" #include "listobject.h" #include "dictobject.h" -#include "odictobject.h" #include "enumobject.h" #include "setobject.h" #include "methodobject.h" @@ -113,6 +109,7 @@ #include "funcobject.h" #include "classobject.h" #include "fileobject.h" +#include "cobject.h" #include "pycapsule.h" #include "traceback.h" #include "sliceobject.h" @@ -122,39 +119,63 @@ #include "descrobject.h" #include "warnings.h" #include "weakrefobject.h" -#include "structseq.h" -#include "namespaceobject.h" -#include "picklebufobject.h" #include "codecs.h" #include "pyerrors.h" -#include "cpython/initconfig.h" #include "pystate.h" -#include "context.h" #include "pyarena.h" #include "modsupport.h" -#include "compile.h" #include "pythonrun.h" -#include "pylifecycle.h" #include "ceval.h" #include "sysmodule.h" -#include "osmodule.h" #include "intrcheck.h" #include "import.h" #include "abstract.h" -#include "bltinmodule.h" +#include "compile.h" #include "eval.h" #include "pyctype.h" #include "pystrtod.h" #include "pystrcmp.h" #include "dtoa.h" -#include "fileutils.h" + +/* _Py_Mangle is defined in compile.c */ +PyAPI_FUNC(PyObject*) _Py_Mangle(PyObject *p, PyObject *name); + +/* PyArg_GetInt is deprecated and should not be used, use PyArg_Parse(). */ +#define PyArg_GetInt(v, a) PyArg_Parse((v), "i", (a)) + +/* PyArg_NoArgs should not be necessary. + Set ml_flags in the PyMethodDef to METH_NOARGS. */ +#define PyArg_NoArgs(v) PyArg_Parse(v, "") + +/* Argument must be a char or an int in [-128, 127] or [0, 255]. */ +#define Py_CHARMASK(c) ((unsigned char)((c) & 0xff)) + #include "pyfpe.h" -#include "tracemalloc.h" + +/* These definitions must match corresponding definitions in graminit.h. + There's code in compile.c that checks that they are the same. */ +#define Py_single_input 256 +#define Py_file_input 257 +#define Py_eval_input 258 + +#ifdef HAVE_PTH +/* GNU pth user-space thread support */ +#include <pth.h> +#endif + +/* Define macros for inline documentation. */ +#define PyDoc_VAR(name) static char name[] +#define PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str) +#ifdef WITH_DOC_STRINGS +#define PyDoc_STR(str) str +#else +#define PyDoc_STR(str) "" +#endif #endif /* !Py_PYTHON_H */ |