Index: Include/object.h =================================================================== --- Include/object.h (revision 68614) +++ Include/object.h (working copy) @@ -219,7 +219,7 @@ binaryfunc nb_xor; binaryfunc nb_or; unaryfunc nb_int; - unaryfunc nb_long; + void *nb_reserved; /* the slot formerly known as nb_long */ unaryfunc nb_float; binaryfunc nb_inplace_add; Index: Objects/complexobject.c =================================================================== --- Objects/complexobject.c (revision 68619) +++ Objects/complexobject.c (working copy) @@ -1060,7 +1060,7 @@ 0, /* nb_xor */ 0, /* nb_or */ complex_int, /* nb_int */ - 0, /* nb_long */ + 0, /* nb_reserved */ complex_float, /* nb_float */ 0, /* nb_inplace_add */ 0, /* nb_inplace_subtract */ Index: Objects/typeobject.c =================================================================== --- Objects/typeobject.c (revision 68614) +++ Objects/typeobject.c (working copy) @@ -3602,7 +3602,6 @@ COPYNUM(nb_xor); COPYNUM(nb_or); COPYNUM(nb_int); - COPYNUM(nb_long); COPYNUM(nb_float); COPYNUM(nb_inplace_add); COPYNUM(nb_inplace_subtract); @@ -4827,7 +4826,6 @@ SLOT1BIN(slot_nb_or, nb_or, "__or__", "__ror__") SLOT0(slot_nb_int, "__int__") -SLOT0(slot_nb_long, "__long__") SLOT0(slot_nb_float, "__float__") SLOT1(slot_nb_inplace_add, "__iadd__", PyObject *, "O") SLOT1(slot_nb_inplace_subtract, "__isub__", PyObject *, "O") @@ -5443,8 +5441,6 @@ RBINSLOT("__ror__", nb_or, slot_nb_or, "|"), UNSLOT("__int__", nb_int, slot_nb_int, wrap_unaryfunc, "int(x)"), - UNSLOT("__long__", nb_long, slot_nb_long, wrap_unaryfunc, - "int(x)"), UNSLOT("__float__", nb_float, slot_nb_float, wrap_unaryfunc, "float(x)"), NBSLOT("__index__", nb_index, slot_nb_index, wrap_unaryfunc, Index: Objects/weakrefobject.c =================================================================== --- Objects/weakrefobject.c (revision 68619) +++ Objects/weakrefobject.c (working copy) @@ -594,7 +594,7 @@ proxy_xor, /*nb_xor*/ proxy_or, /*nb_or*/ proxy_int, /*nb_int*/ - 0, /*nb_long*/ + 0, /*nb_reserved*/ proxy_float, /*nb_float*/ proxy_iadd, /*nb_inplace_add*/ proxy_isub, /*nb_inplace_subtract*/ Index: Objects/boolobject.c =================================================================== --- Objects/boolobject.c (revision 68614) +++ Objects/boolobject.c (working copy) @@ -109,7 +109,7 @@ bool_xor, /* nb_xor */ bool_or, /* nb_or */ 0, /* nb_int */ - 0, /* nb_long */ + 0, /* nb_reserved */ 0, /* nb_float */ 0, /* nb_inplace_add */ 0, /* nb_inplace_subtract */ Index: Objects/setobject.c =================================================================== --- Objects/setobject.c (revision 68614) +++ Objects/setobject.c (working copy) @@ -2082,7 +2082,7 @@ (binaryfunc)set_xor, /*nb_xor*/ (binaryfunc)set_or, /*nb_or*/ 0, /*nb_int*/ - 0, /*nb_long*/ + 0, /*nb_reserved*/ 0, /*nb_float*/ 0, /*nb_inplace_add*/ (binaryfunc)set_isub, /*nb_inplace_subtract*/ Index: Objects/longobject.c =================================================================== --- Objects/longobject.c (revision 68619) +++ Objects/longobject.c (working copy) @@ -3830,7 +3830,7 @@ long_xor, /*nb_xor*/ long_or, /*nb_or*/ long_long, /*nb_int*/ - 0, /*nb_long*/ + 0, /*nb_reserved*/ long_float, /*nb_float*/ 0, /* nb_inplace_add */ 0, /* nb_inplace_subtract */ Index: Objects/floatobject.c =================================================================== --- Objects/floatobject.c (revision 68619) +++ Objects/floatobject.c (working copy) @@ -1798,7 +1798,7 @@ 0, /*nb_xor*/ 0, /*nb_or*/ float_trunc, /*nb_int*/ - 0, /*nb_long*/ + 0, /*nb_reserved*/ float_float, /*nb_float*/ 0, /* nb_inplace_add */ 0, /* nb_inplace_subtract */ Index: Misc/NEWS =================================================================== --- Misc/NEWS (revision 68615) +++ Misc/NEWS (working copy) @@ -12,6 +12,9 @@ Core and Builtins ----------------- +- Issue #4910: Rename nb_long slot to nb_reserved, and change its + type to (void *). + - Issue #4935: The overflow checking code in the expandtabs() method common to str, bytes and bytearray could be optimized away by the compiler, letting the interpreter segfault instead of raising an error. Index: PC/winreg.c =================================================================== --- PC/winreg.c (revision 68619) +++ PC/winreg.c (working copy) @@ -451,7 +451,7 @@ PyHKEY_binaryFailureFunc, /* nb_xor */ PyHKEY_binaryFailureFunc, /* nb_or */ PyHKEY_intFunc, /* nb_int */ - 0, /* nb_long */ + 0, /* nb_reserved */ PyHKEY_unaryFailureFunc, /* nb_float */ }; Index: Doc/c-api/typeobj.rst =================================================================== --- Doc/c-api/typeobj.rst (revision 68614) +++ Doc/c-api/typeobj.rst (working copy) @@ -1058,7 +1058,7 @@ binaryfunc nb_xor; binaryfunc nb_or; unaryfunc nb_int; - unaryfunc nb_long; + void *nb_reserved; unaryfunc nb_float; binaryfunc nb_inplace_add; @@ -1089,7 +1089,13 @@ ``Py_NotImplemented``, if another error occurred they must return ``NULL`` and set an exception. + .. note:: + The :cdata:`nb_reserved` field should always be ``NULL``. It + was previously called :cdata:`nb_long`, and was renamed in + Python 3.0.1. + + .. _mapping-structs: Mapping Object Structures Index: Modules/datetimemodule.c =================================================================== --- Modules/datetimemodule.c (revision 68614) +++ Modules/datetimemodule.c (working copy) @@ -2111,7 +2111,7 @@ 0, /*nb_xor*/ 0, /*nb_or*/ 0, /*nb_int*/ - 0, /*nb_long*/ + 0, /*nb_reserved*/ 0, /*nb_float*/ 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/