Index: Objects/complexobject.c =================================================================== --- Objects/complexobject.c (revision 68552) +++ Objects/complexobject.c (working copy) @@ -661,14 +661,6 @@ } static PyObject * -complex_long(PyObject *v) -{ - PyErr_SetString(PyExc_TypeError, - "can't convert complex to long; use long(abs(z))"); - return NULL; -} - -static PyObject * complex_float(PyObject *v) { PyErr_SetString(PyExc_TypeError, @@ -1068,7 +1060,7 @@ 0, /* nb_xor */ 0, /* nb_or */ complex_int, /* nb_int */ - complex_long, /* nb_long */ + 0, /* nb_long */ complex_float, /* nb_float */ 0, /* nb_inplace_add */ 0, /* nb_inplace_subtract */ Index: Objects/weakrefobject.c =================================================================== --- Objects/weakrefobject.c (revision 68552) +++ Objects/weakrefobject.c (working copy) @@ -489,7 +489,6 @@ WRAP_BINARY(proxy_xor, PyNumber_Xor) WRAP_BINARY(proxy_or, PyNumber_Or) WRAP_UNARY(proxy_int, PyNumber_Int) -WRAP_UNARY(proxy_long, PyNumber_Long) WRAP_UNARY(proxy_float, PyNumber_Float) WRAP_BINARY(proxy_iadd, PyNumber_InPlaceAdd) WRAP_BINARY(proxy_isub, PyNumber_InPlaceSubtract) @@ -595,7 +594,7 @@ proxy_xor, /*nb_xor*/ proxy_or, /*nb_or*/ proxy_int, /*nb_int*/ - proxy_long, /*nb_long*/ + 0, /*nb_long*/ proxy_float, /*nb_float*/ proxy_iadd, /*nb_inplace_add*/ proxy_isub, /*nb_inplace_subtract*/ Index: Objects/longobject.c =================================================================== --- Objects/longobject.c (revision 68552) +++ Objects/longobject.c (working copy) @@ -3830,7 +3830,7 @@ long_xor, /*nb_xor*/ long_or, /*nb_or*/ long_long, /*nb_int*/ - long_long, /*nb_long*/ + 0, /*nb_long*/ long_float, /*nb_float*/ 0, /* nb_inplace_add */ 0, /* nb_inplace_subtract */ Index: Objects/floatobject.c =================================================================== --- Objects/floatobject.c (revision 68552) +++ Objects/floatobject.c (working copy) @@ -1798,7 +1798,7 @@ 0, /*nb_xor*/ 0, /*nb_or*/ float_trunc, /*nb_int*/ - float_trunc, /*nb_long*/ + 0, /*nb_long*/ float_float, /*nb_float*/ 0, /* nb_inplace_add */ 0, /* nb_inplace_subtract */ Index: PC/winreg.c =================================================================== --- PC/winreg.c (revision 68552) +++ PC/winreg.c (working copy) @@ -451,7 +451,7 @@ PyHKEY_binaryFailureFunc, /* nb_xor */ PyHKEY_binaryFailureFunc, /* nb_or */ PyHKEY_intFunc, /* nb_int */ - PyHKEY_unaryFailureFunc, /* nb_long */ + 0, /* nb_long */ PyHKEY_unaryFailureFunc, /* nb_float */ }; Index: Lib/test/test_cmath.py =================================================================== --- Lib/test/test_cmath.py (revision 68552) +++ Lib/test/test_cmath.py (working copy) @@ -182,11 +182,9 @@ pass class MyInt(object): def __int__(self): return 2 - def __long__(self): return 2 def __index__(self): return 2 class MyIntOS: def __int__(self): return 2 - def __long__(self): return 2 def __index__(self): return 2 # other possible combinations of __float__ and __complex__ @@ -219,7 +217,7 @@ self.assertEqual(f(JustFloatOS()), f(flt_arg)) # TypeError should be raised for classes not providing # either __complex__ or __float__, even if they provide - # __int__, __long__ or __index__. An old-style class + # __int__ or __index__. An old-style class # currently raises AttributeError instead of a TypeError; # this could be considered a bug. self.assertRaises(TypeError, f, NeitherComplexNorFloat()) Index: Lib/test/test_binop.py =================================================================== --- Lib/test/test_binop.py (revision 68552) +++ Lib/test/test_binop.py (working copy) @@ -77,12 +77,6 @@ repr(self)) raise ValueError("can't convert %s to int" % repr(self)) - def __long__(self): - """Convert a Rat to an long; self.den must be 1.""" - if self.__den == 1: - return int(self.__num) - raise ValueError("can't convert %s to long" % repr(self)) - def __add__(self, other): """Add two Rats, or a Rat and a number.""" if isint(other): Index: Modules/_struct.c =================================================================== --- Modules/_struct.c (revision 68552) +++ Modules/_struct.c (working copy) @@ -127,8 +127,8 @@ return v; } m = Py_TYPE(v)->tp_as_number; - if (m != NULL && m->nb_long != NULL) { - v = m->nb_long(v); + if (m != NULL && m->nb_int != NULL) { + v = m->nb_int(v); if (v == NULL) return NULL; if (PyLong_Check(v))