From ba1e0f46ab5a83be1a367b0eadb2f783e06228b3 Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Sun, 18 Oct 2009 14:25:35 +0000 Subject: [PATCH] Issue 7147 - remove ability to attempt to build Python without complex number support (was broken anyway) --- Include/Python.h | 2 -- Misc/NEWS | 3 +++ Objects/complexobject.c | 4 ---- Objects/object.c | 3 +-- Parser/tokenizer.c | 6 ------ Python/ast.c | 6 ------ Python/bltinmodule.c | 2 -- Python/getargs.c | 4 ---- Python/marshal.c | 4 ---- Python/modsupport.c | 2 -- 10 files changed, 4 insertions(+), 32 deletions(-) diff --git a/Include/Python.h b/Include/Python.h index aa805e7e7af02d..d900978141dbce 100644 --- a/Include/Python.h +++ b/Include/Python.h @@ -73,9 +73,7 @@ #include "longintrepr.h" #include "boolobject.h" #include "floatobject.h" -#ifndef WITHOUT_COMPLEX #include "complexobject.h" -#endif #include "rangeobject.h" #include "memoryobject.h" #include "tupleobject.h" diff --git a/Misc/NEWS b/Misc/NEWS index e0dd0cc6dd36b6..7ff7783fc156f9 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,9 @@ What's New in Python 3.2 Alpha 1? Core and Builtins ----------------- +- Issue *7147: Remove support for compiling Python without complex number + support. + - Issue #7120: logging: Removed import of multiprocessing which is causing crash in GAE. diff --git a/Objects/complexobject.c b/Objects/complexobject.c index 30d8b5216e0a8d..ccee38229c2b19 100644 --- a/Objects/complexobject.c +++ b/Objects/complexobject.c @@ -12,8 +12,6 @@ #include #endif -#ifndef WITHOUT_COMPLEX - /* elementary operations on complex numbers */ static Py_complex c_1 = {1., 0.}; @@ -1108,5 +1106,3 @@ PyTypeObject PyComplex_Type = { complex_new, /* tp_new */ PyObject_Del, /* tp_free */ }; - -#endif diff --git a/Objects/object.c b/Objects/object.c index e8ac8a2e469559..90cdc74195a875 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1536,10 +1536,9 @@ _Py_ReadyTypes(void) if (PyType_Ready(&PyStaticMethod_Type) < 0) Py_FatalError("Can't initialize static method type"); -#ifndef WITHOUT_COMPLEX if (PyType_Ready(&PyComplex_Type) < 0) Py_FatalError("Can't initialize complex type"); -#endif + if (PyType_Ready(&PyFloat_Type) < 0) Py_FatalError("Can't initialize float type"); diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index cc142a7127278d..daf18dc2be61fe 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -1383,10 +1383,8 @@ tok_get(register struct tok_state *tok, char **p_start, char **p_end) c = tok_nextc(tok); if (c == '.') goto fraction; -#ifndef WITHOUT_COMPLEX if (c == 'j' || c == 'J') goto imaginary; -#endif if (c == 'x' || c == 'X') { /* Hex */ @@ -1438,10 +1436,8 @@ tok_get(register struct tok_state *tok, char **p_start, char **p_end) goto fraction; else if (c == 'e' || c == 'E') goto exponent; -#ifndef WITHOUT_COMPLEX else if (c == 'j' || c == 'J') goto imaginary; -#endif else if (nonzero) { tok->done = E_TOKEN; tok_backup(tok, c); @@ -1478,12 +1474,10 @@ tok_get(register struct tok_state *tok, char **p_start, char **p_end) c = tok_nextc(tok); } while (isdigit(c)); } -#ifndef WITHOUT_COMPLEX if (c == 'j' || c == 'J') /* Imaginary part */ imaginary: c = tok_nextc(tok); -#endif } } tok_backup(tok, c); diff --git a/Python/ast.c b/Python/ast.c index 8a35a1206ff48e..c3edea35346fa5 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -3177,17 +3177,13 @@ parsenumber(struct compiling *c, const char *s) const char *end; long x; double dx; -#ifndef WITHOUT_COMPLEX Py_complex compl; int imflag; -#endif assert(s != NULL); errno = 0; end = s + strlen(s) - 1; -#ifndef WITHOUT_COMPLEX imflag = *end == 'j' || *end == 'J'; -#endif if (s[0] == '0') { x = (long) PyOS_strtoul((char *)s, (char **)&end, 0); if (x < 0 && errno == 0) { @@ -3204,7 +3200,6 @@ parsenumber(struct compiling *c, const char *s) return PyLong_FromLong(x); } /* XXX Huge floats may silently fail */ -#ifndef WITHOUT_COMPLEX if (imflag) { compl.real = 0.; compl.imag = PyOS_string_to_double(s, (char **)&end, NULL); @@ -3213,7 +3208,6 @@ parsenumber(struct compiling *c, const char *s) return PyComplex_FromCComplex(compl); } else -#endif { dx = PyOS_string_to_double(s, NULL, NULL); if (dx == -1.0 && PyErr_Occurred()) diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 2224d3722fce45..ab6049cabff35a 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -2302,9 +2302,7 @@ _PyBuiltin_Init(void) SETBUILTIN("bytearray", &PyByteArray_Type); SETBUILTIN("bytes", &PyBytes_Type); SETBUILTIN("classmethod", &PyClassMethod_Type); -#ifndef WITHOUT_COMPLEX SETBUILTIN("complex", &PyComplex_Type); -#endif SETBUILTIN("dict", &PyDict_Type); SETBUILTIN("enumerate", &PyEnum_Type); SETBUILTIN("filter", &PyFilter_Type); diff --git a/Python/getargs.c b/Python/getargs.c index 486cf7d07d3172..f41cd05eaf44e3 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -818,7 +818,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, break; } -#ifndef WITHOUT_COMPLEX case 'D': {/* complex double */ Py_complex *p = va_arg(*p_va, Py_complex *); Py_complex cval; @@ -829,7 +828,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, *p = cval; break; } -#endif /* WITHOUT_COMPLEX */ case 'c': {/* char */ char *p = va_arg(*p_va, char *); @@ -1772,9 +1770,7 @@ skipitem(const char **p_format, va_list *p_va, int flags) #endif case 'f': /* float */ case 'd': /* double */ -#ifndef WITHOUT_COMPLEX case 'D': /* complex double */ -#endif case 'c': /* char */ { (void) va_arg(*p_va, void *); diff --git a/Python/marshal.c b/Python/marshal.c index 256285b4268c81..3391085ccb077b 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -254,7 +254,6 @@ w_object(PyObject *v, WFILE *p) PyMem_Free(buf); } } -#ifndef WITHOUT_COMPLEX else if (PyComplex_CheckExact(v)) { if (p->version > 1) { unsigned char buf[8]; @@ -297,7 +296,6 @@ w_object(PyObject *v, WFILE *p) PyMem_Free(buf); } } -#endif else if (PyBytes_CheckExact(v)) { w_byte(TYPE_STRING, p); n = PyBytes_GET_SIZE(v); @@ -714,7 +712,6 @@ r_object(RFILE *p) break; } -#ifndef WITHOUT_COMPLEX case TYPE_COMPLEX: { char buf[256]; @@ -773,7 +770,6 @@ r_object(RFILE *p) retval = PyComplex_FromCComplex(c); break; } -#endif case TYPE_STRING: n = r_long(p); diff --git a/Python/modsupport.c b/Python/modsupport.c index 0cbc6f7cfbd8cb..0f31634a78a5e6 100644 --- a/Python/modsupport.c +++ b/Python/modsupport.c @@ -279,11 +279,9 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags) return PyFloat_FromDouble( (double)va_arg(*p_va, va_double)); -#ifndef WITHOUT_COMPLEX case 'D': return PyComplex_FromCComplex( *((Py_complex *)va_arg(*p_va, Py_complex *))); -#endif /* WITHOUT_COMPLEX */ case 'c': {