[pypy-svn] r73650 - in pypy/branch/cpython-extension/pypy/module/cpyext: . include
agaynor at codespeak.net
agaynor at codespeak.net
Sun Apr 11 20:19:24 CEST 2010
Author: agaynor
Date: Sun Apr 11 20:19:22 2010
New Revision: 73650
Added:
pypy/branch/cpython-extension/pypy/module/cpyext/include/pyconfig.h
Modified:
pypy/branch/cpython-extension/pypy/module/cpyext/api.py
pypy/branch/cpython-extension/pypy/module/cpyext/include/Python.h
Log:
Added various macros for the sizes of types.
Modified: pypy/branch/cpython-extension/pypy/module/cpyext/api.py
==============================================================================
--- pypy/branch/cpython-extension/pypy/module/cpyext/api.py (original)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/api.py Sun Apr 11 20:19:22 2010
@@ -542,6 +542,18 @@
export_symbols[:] = renamed_symbols
else:
export_symbols[:] = [sym.replace("#", "") for sym in export_symbols]
+
+ # Generate defines
+ for macro_name, size in [
+ ("SIZEOF_LONG_LONG", rffi.LONGLONG),
+ ("SIZEOF_VOID_P", rffi.VOIDP),
+ ("SIZEOF_SIZE_T", rffi.SIZE_T),
+ ("SIZEOF_LONG", rffi.LONG),
+ ("SIZEOF_SHORT", rffi.SHORT),
+ ("SIZEOF_INT", rffi.INT)
+ ]:
+ pypy_macros.append("#define %s %s" % (macro_name, rffi.sizeof(size)))
+
pypy_macros_h = udir.join('pypy_macros.h')
pypy_macros_h.write('\n'.join(pypy_macros))
Modified: pypy/branch/cpython-extension/pypy/module/cpyext/include/Python.h
==============================================================================
--- pypy/branch/cpython-extension/pypy/module/cpyext/include/Python.h (original)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/include/Python.h Sun Apr 11 20:19:22 2010
@@ -1,27 +1,6 @@
#ifndef Py_PYTHON_H
#define Py_PYTHON_H
-// XXX this should be in pyconfig.h
-
-#define HAVE_LONG_LONG 1
-#define HAVE_STDARG_PROTOTYPES 1
-#define PY_FORMAT_LONG_LONG "ll"
-#define PY_LONG_LONG long long
-#define SIZEOF_LONG_LONG sizeof(PY_LONG_LONG)
-#define PY_FORMAT_SIZE_T "z"
-#define SIZEOF_VOID_P sizeof(void *)
-#define WITH_DOC_STRINGS
-#define HAVE_UNICODE
-#define WITHOUT_COMPLEX
-
-/* PyPy supposes Py_UNICODE == wchar_t */
-#define HAVE_USABLE_WCHAR_T 1
-#ifndef _WIN32
-#define Py_UNICODE_SIZE 4
-#else
-#define Py_UNICODE_SIZE 2
-#endif
-
/* Compat stuff */
#ifndef _WIN32
# include <inttypes.h>
@@ -46,8 +25,6 @@
#define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1)
#define Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW) (NARROW)(VALUE)
// obviously wrong
-#define SIZEOF_SIZE_T 4
-#define SIZEOF_LONG 4
// from pyport.h
#ifdef SIZE_MAX
@@ -85,6 +62,8 @@
#include <ctype.h>
#include <stdlib.h>
+#include "pyconfig.h"
+
#include "boolobject.h"
#include "floatobject.h"
#include "methodobject.h"
Added: pypy/branch/cpython-extension/pypy/module/cpyext/include/pyconfig.h
==============================================================================
--- (empty file)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/include/pyconfig.h Sun Apr 11 20:19:22 2010
@@ -0,0 +1,30 @@
+#ifndef Py_PYCONFIG_H
+#define Py_PYCONFIG_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define HAVE_PROTOTYPES 1
+#define STDC_HEADERS 1
+
+#define HAVE_LONG_LONG 1
+#define HAVE_STDARG_PROTOTYPES 1
+#define PY_FORMAT_LONG_LONG "ll"
+#define PY_LONG_LONG long long
+#define PY_FORMAT_SIZE_T "z"
+#define WITH_DOC_STRINGS
+#define HAVE_UNICODE
+#define WITHOUT_COMPLEX
+
+/* PyPy supposes Py_UNICODE == wchar_t */
+#define HAVE_USABLE_WCHAR_T 1
+#ifndef _WIN32
+#define Py_UNICODE_SIZE 4
+#else
+#define Py_UNICODE_SIZE 2
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif
More information about the Pypy-commit
mailing list