[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