[Python-checkins] CVS: python/dist/src/Objects longobject.c,1.60,1.61

Tim Peters python-dev@python.org
Fri, 7 Jul 2000 08:53:31 -0700


Update of /cvsroot/python/python/dist/src/Objects
In directory slayer.i.sourceforge.net:/tmp/cvs-serv6414/src/Objects

Modified Files:
	longobject.c 
Log Message:
Some cleanup of longs in prepartion for Cray J90 fixes:  got
rid of Py_PROTO, switched to ANSI function decls, and did some
minor fiddling.


Index: longobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/longobject.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -C2 -r1.60 -r1.61
*** longobject.c	2000/06/30 23:58:05	1.60
--- longobject.c	2000/07/07 15:53:28	1.61
***************
*** 23,31 ****
  
  /* Forward */
! static PyLongObject *long_normalize Py_PROTO((PyLongObject *));
! static PyLongObject *mul1 Py_PROTO((PyLongObject *, wdigit));
! static PyLongObject *muladd1 Py_PROTO((PyLongObject *, wdigit, wdigit));
! static PyLongObject *divrem1 Py_PROTO((PyLongObject *, wdigit, digit *));
! static PyObject *long_format Py_PROTO((PyObject *aa, int base, int addL));
  
  static int ticker;	/* XXX Could be shared with ceval? */
--- 23,31 ----
  
  /* Forward */
! static PyLongObject *long_normalize(PyLongObject *);
! static PyLongObject *mul1(PyLongObject *, wdigit);
! static PyLongObject *muladd1(PyLongObject *, wdigit, wdigit);
! static PyLongObject *divrem1(PyLongObject *, wdigit, digit *);
! static PyObject *long_format(PyObject *aa, int base, int addL);
  
  static int ticker;	/* XXX Could be shared with ceval? */
***************
*** 42,47 ****
  
  static PyLongObject *
! long_normalize(v)
! 	register PyLongObject *v;
  {
  	int j = ABS(v->ob_size);
--- 42,46 ----
  
  static PyLongObject *
! long_normalize(register PyLongObject *v)
  {
  	int j = ABS(v->ob_size);
***************
*** 59,64 ****
  
  PyLongObject *
! _PyLong_New(size)
! 	int size;
  {
  	return PyObject_NEW_VAR(PyLongObject, &PyLong_Type, size);
--- 58,62 ----
  
  PyLongObject *
! _PyLong_New(int size)
  {
  	return PyObject_NEW_VAR(PyLongObject, &PyLong_Type, size);
***************
*** 68,73 ****
  
  PyObject *
! PyLong_FromLong(ival)
! 	long ival;
  {
  	/* Assume a C long fits in at most 5 'digits' */
--- 66,70 ----
  
  PyObject *
! PyLong_FromLong(long ival)
  {
  	/* Assume a C long fits in at most 5 'digits' */
***************
*** 93,98 ****
  
  PyObject *
! PyLong_FromUnsignedLong(ival)
! 	unsigned long ival;
  {
  	/* Assume a C long fits in at most 5 'digits' */
--- 90,94 ----
  
  PyObject *
! PyLong_FromUnsignedLong(unsigned long ival)
  {
  	/* Assume a C long fits in at most 5 'digits' */
***************
*** 114,123 ****
  
  PyObject *
- #ifdef MPW
  PyLong_FromDouble(double dval)
- #else
- PyLong_FromDouble(dval)
- 	double dval;
- #endif /* MPW */
  {
  	PyLongObject *v;
--- 110,114 ----
***************
*** 157,162 ****
  
  long
! PyLong_AsLong(vv)
! 	PyObject *vv;
  {
  	/* This version by Tim Peters */
--- 148,152 ----
  
  long
! PyLong_AsLong(PyObject *vv)
  {
  	/* This version by Tim Peters */
***************
*** 202,207 ****
  
  unsigned long
! PyLong_AsUnsignedLong(vv)
! 	PyObject *vv;
  {
  	register PyLongObject *v;
--- 192,196 ----
  
  unsigned long
! PyLong_AsUnsignedLong(PyObject *vv)
  {
  	register PyLongObject *v;
***************
*** 236,241 ****
  
  double
! PyLong_AsDouble(vv)
! 	PyObject *vv;
  {
  	register PyLongObject *v;
--- 225,229 ----
  
  double
! PyLong_AsDouble(PyObject *vv)
  {
  	register PyLongObject *v;
***************
*** 265,270 ****
  
  PyObject *
! PyLong_FromVoidPtr(p)
! 	void *p;
  {
  #if SIZEOF_VOID_P == SIZEOF_LONG
--- 253,257 ----
  
  PyObject *
! PyLong_FromVoidPtr(void *p)
  {
  #if SIZEOF_VOID_P == SIZEOF_LONG
***************
*** 285,290 ****
  
  void *
! PyLong_AsVoidPtr(vv)
! 	PyObject *vv;
  {
  	/* This function will allow int or long objects. If vv is neither,
--- 272,276 ----
  
  void *
! PyLong_AsVoidPtr(PyObject *vv)
  {
  	/* This function will allow int or long objects. If vv is neither,
***************
*** 328,333 ****
  
  PyObject *
! PyLong_FromLongLong(ival)
! 	LONG_LONG ival;
  {
  #if SIZEOF_LONG_LONG == SIZEOF_LONG
--- 314,318 ----
  
  PyObject *
! PyLong_FromLongLong(LONG_LONG ival)
  {
  #if SIZEOF_LONG_LONG == SIZEOF_LONG
***************
*** 370,375 ****
  /* Create a new long int object from a C unsigned LONG_LONG int */
  PyObject *
! PyLong_FromUnsignedLongLong(ival)
! 	unsigned LONG_LONG ival;
  {
  #if SIZEOF_LONG_LONG == SIZEOF_LONG
--- 355,359 ----
  /* Create a new long int object from a C unsigned LONG_LONG int */
  PyObject *
! PyLong_FromUnsignedLongLong(unsigned LONG_LONG ival)
  {
  #if SIZEOF_LONG_LONG == SIZEOF_LONG
***************
*** 404,409 ****
  
  LONG_LONG
! PyLong_AsLongLong(vv)
! 	PyObject *vv;
  {
  #if SIZEOF_LONG_LONG == SIZEOF_LONG
--- 388,392 ----
  
  LONG_LONG
! PyLong_AsLongLong(PyObject *vv)
  {
  #if SIZEOF_LONG_LONG == SIZEOF_LONG
***************
*** 445,450 ****
  
  unsigned LONG_LONG
! PyLong_AsUnsignedLongLong(vv)
! 	PyObject *vv;
  {
  #if SIZEOF_LONG_LONG == 4
--- 428,432 ----
  
  unsigned LONG_LONG
! PyLong_AsUnsignedLongLong(PyObject *vv)
  {
  #if SIZEOF_LONG_LONG == 4
***************
*** 489,495 ****
  
  static PyLongObject *
! mul1(a, n)
! 	PyLongObject *a;
! 	wdigit n;
  {
  	return muladd1(a, n, (digit)0);
--- 471,475 ----
  
  static PyLongObject *
! mul1(PyLongObject *a, wdigit n)
  {
  	return muladd1(a, n, (digit)0);
***************
*** 499,506 ****
  
  static PyLongObject *
! muladd1(a, n, extra)
! 	PyLongObject *a;
! 	wdigit n;
! 	wdigit extra;
  {
  	int size_a = ABS(a->ob_size);
--- 479,483 ----
  
  static PyLongObject *
! muladd1(PyLongObject *a, wdigit n, wdigit extra)
  {
  	int size_a = ABS(a->ob_size);
***************
*** 525,532 ****
  
  static PyLongObject *
! divrem1(a, n, prem)
! 	PyLongObject *a;
! 	wdigit n;
! 	digit *prem;
  {
  	int size = ABS(a->ob_size);
--- 502,506 ----
  
  static PyLongObject *
! divrem1(PyLongObject *a, wdigit n, digit *prem)
  {
  	int size = ABS(a->ob_size);
***************
*** 553,560 ****
  
  static PyObject *
! long_format(aa, base, addL)
! 	PyObject *aa;
! 	int base;
!         int addL;
  {
  	register PyLongObject *a = (PyLongObject *)aa;
--- 527,531 ----
  
  static PyObject *
! long_format(PyObject *aa, int base, int addL)
  {
  	register PyLongObject *a = (PyLongObject *)aa;
***************
*** 683,705 ****
  }
  
- #if 0
- /* Convert a string to a long int object, in a given base.
-    Base zero implies a default depending on the number.
-    External linkage: used in compile.c and stropmodule.c. */
- 
- PyObject *
- long_scan(str, base)
- 	char *str;
- 	int base;
- {
- 	return PyLong_FromString(str, (char **)NULL, base);
- }
- #endif
- 
  PyObject *
! PyLong_FromString(str, pend, base)
! 	char *str;
! 	char **pend;
! 	int base;
  {
  	int sign = 1;
--- 654,659 ----
  }
  
  PyObject *
! PyLong_FromString(char *str, char **pend, int base)
  {
  	int sign = 1;
***************
*** 774,781 ****
  
  PyObject *
! PyLong_FromUnicode(u, length, base)
! 	Py_UNICODE *u;
! 	int length;
! 	int base;
  {
  	char buffer[256];
--- 728,732 ----
  
  PyObject *
! PyLong_FromUnicode(Py_UNICODE *u, int length, int base)
  {
  	char buffer[256];
***************
*** 792,808 ****
  }
  
  static PyLongObject *x_divrem
! 	Py_PROTO((PyLongObject *, PyLongObject *, PyLongObject **));
! static PyObject *long_pos Py_PROTO((PyLongObject *));
! static int long_divrem Py_PROTO((PyLongObject *, PyLongObject *,
! 	PyLongObject **, PyLongObject **));
  
  /* Long division with remainder, top-level routine */
  
  static int
! long_divrem(a, b, pdiv, prem)
! 	PyLongObject *a, *b;
! 	PyLongObject **pdiv;
! 	PyLongObject **prem;
  {
  	int size_a = ABS(a->ob_size), size_b = ABS(b->ob_size);
--- 743,758 ----
  }
  
+ /* forward */
  static PyLongObject *x_divrem
! 	(PyLongObject *, PyLongObject *, PyLongObject **);
! static PyObject *long_pos(PyLongObject *);
! static int long_divrem(PyLongObject *, PyLongObject *,
! 	PyLongObject **, PyLongObject **);
  
  /* Long division with remainder, top-level routine */
  
  static int
! long_divrem(PyLongObject *a, PyLongObject *b,
! 	    PyLongObject **pdiv, PyLongObject **prem)
  {
  	int size_a = ABS(a->ob_size), size_b = ABS(b->ob_size);
***************
*** 850,856 ****
  
  static PyLongObject *
! x_divrem(v1, w1, prem)
! 	PyLongObject *v1, *w1;
! 	PyLongObject **prem;
  {
  	int size_v = ABS(v1->ob_size), size_w = ABS(w1->ob_size);
--- 800,804 ----
  
  static PyLongObject *
! x_divrem(PyLongObject *v1, PyLongObject *w1, PyLongObject **prem)
  {
  	int size_v = ABS(v1->ob_size), size_w = ABS(w1->ob_size);
***************
*** 946,977 ****
  /* Methods */
  
- /* Forward */
- static void long_dealloc Py_PROTO((PyObject *));
- static PyObject *long_repr Py_PROTO((PyObject *));
- static int long_compare Py_PROTO((PyLongObject *, PyLongObject *));
- static long long_hash Py_PROTO((PyLongObject *));
- 
- static PyObject *long_add Py_PROTO((PyLongObject *, PyLongObject *));
- static PyObject *long_sub Py_PROTO((PyLongObject *, PyLongObject *));
- static PyObject *long_mul Py_PROTO((PyLongObject *, PyLongObject *));
- static PyObject *long_div Py_PROTO((PyLongObject *, PyLongObject *));
- static PyObject *long_mod Py_PROTO((PyLongObject *, PyLongObject *));
- static PyObject *long_divmod Py_PROTO((PyLongObject *, PyLongObject *));
- static PyObject *long_pow
- 	Py_PROTO((PyLongObject *, PyLongObject *, PyLongObject *));
- static PyObject *long_neg Py_PROTO((PyLongObject *));
- static PyObject *long_pos Py_PROTO((PyLongObject *));
- static PyObject *long_abs Py_PROTO((PyLongObject *));
- static int long_nonzero Py_PROTO((PyLongObject *));
- static PyObject *long_invert Py_PROTO((PyLongObject *));
- static PyObject *long_lshift Py_PROTO((PyLongObject *, PyLongObject *));
- static PyObject *long_rshift Py_PROTO((PyLongObject *, PyLongObject *));
- static PyObject *long_and Py_PROTO((PyLongObject *, PyLongObject *));
- static PyObject *long_xor Py_PROTO((PyLongObject *, PyLongObject *));
- static PyObject *long_or Py_PROTO((PyLongObject *, PyLongObject *));
- 
  static void
! long_dealloc(v)
! 	PyObject *v;
  {
  	PyObject_DEL(v);
--- 894,899 ----
  /* Methods */
  
  static void
! long_dealloc(PyObject *v)
  {
  	PyObject_DEL(v);
***************
*** 979,984 ****
  
  static PyObject *
! long_repr(v)
! 	PyObject *v;
  {
  	return long_format(v, 10, 1);
--- 901,905 ----
  
  static PyObject *
! long_repr(PyObject *v)
  {
  	return long_format(v, 10, 1);
***************
*** 986,991 ****
  
  static PyObject *
! long_str(v)
! 	PyObject *v;
  {
  	return long_format(v, 10, 0);
--- 907,911 ----
  
  static PyObject *
! long_str(PyObject *v)
  {
  	return long_format(v, 10, 0);
***************
*** 993,998 ****
  
  static int
! long_compare(a, b)
! 	PyLongObject *a, *b;
  {
  	int sign;
--- 913,917 ----
  
  static int
! long_compare(PyLongObject *a, PyLongObject *b)
  {
  	int sign;
***************
*** 1020,1025 ****
  
  static long
! long_hash(v)
! 	PyLongObject *v;
  {
  	long x;
--- 939,943 ----
  
  static long
! long_hash(PyLongObject *v)
  {
  	long x;
***************
*** 1050,1057 ****
  /* Add the absolute values of two long integers. */
  
- static PyLongObject *x_add Py_PROTO((PyLongObject *, PyLongObject *));
  static PyLongObject *
! x_add(a, b)
! 	PyLongObject *a, *b;
  {
  	int size_a = ABS(a->ob_size), size_b = ABS(b->ob_size);
--- 968,973 ----
  /* Add the absolute values of two long integers. */
  
  static PyLongObject *
! x_add(PyLongObject *a, PyLongObject *b)
  {
  	int size_a = ABS(a->ob_size), size_b = ABS(b->ob_size);
***************
*** 1088,1095 ****
  /* Subtract the absolute values of two integers. */
  
- static PyLongObject *x_sub Py_PROTO((PyLongObject *, PyLongObject *));
  static PyLongObject *
! x_sub(a, b)
! 	PyLongObject *a, *b;
  {
  	int size_a = ABS(a->ob_size), size_b = ABS(b->ob_size);
--- 1004,1009 ----
  /* Subtract the absolute values of two integers. */
  
  static PyLongObject *
! x_sub(PyLongObject *a, PyLongObject *b)
  {
  	int size_a = ABS(a->ob_size), size_b = ABS(b->ob_size);
***************
*** 1143,1149 ****
  
  static PyObject *
! long_add(a, b)
! 	PyLongObject *a;
! 	PyLongObject *b;
  {
  	PyLongObject *z;
--- 1057,1061 ----
  
  static PyObject *
! long_add(PyLongObject *a, PyLongObject *b)
  {
  	PyLongObject *z;
***************
*** 1168,1174 ****
  
  static PyObject *
! long_sub(a, b)
! 	PyLongObject *a;
! 	PyLongObject *b;
  {
  	PyLongObject *z;
--- 1080,1084 ----
  
  static PyObject *
! long_sub(PyLongObject *a, PyLongObject *b)
  {
  	PyLongObject *z;
***************
*** 1192,1198 ****
  
  static PyObject *
! long_mul(a, b)
! 	PyLongObject *a;
! 	PyLongObject *b;
  {
  	int size_a;
--- 1102,1106 ----
  
  static PyObject *
! long_mul(PyLongObject *a, PyLongObject *b)
  {
  	int size_a;
***************
*** 1260,1271 ****
     part of the outcome to keep the invariant intact. */
  
- static int l_divmod Py_PROTO((PyLongObject *, PyLongObject *,
- 	PyLongObject **, PyLongObject **));
  static int
! l_divmod(v, w, pdiv, pmod)
! 	PyLongObject *v;
! 	PyLongObject *w;
! 	PyLongObject **pdiv;
! 	PyLongObject **pmod;
  {
  	PyLongObject *div, *mod;
--- 1168,1174 ----
     part of the outcome to keep the invariant intact. */
  
  static int
! l_divmod(PyLongObject *v, PyLongObject *w, 
! 	 PyLongObject **pdiv, PyLongObject **pmod)
  {
  	PyLongObject *div, *mod;
***************
*** 1302,1308 ****
  
  static PyObject *
! long_div(v, w)
! 	PyLongObject *v;
! 	PyLongObject *w;
  {
  	PyLongObject *div, *mod;
--- 1205,1209 ----
  
  static PyObject *
! long_div(PyLongObject *v, PyLongObject *w)
  {
  	PyLongObject *div, *mod;
***************
*** 1314,1320 ****
  
  static PyObject *
! long_mod(v, w)
! 	PyLongObject *v;
! 	PyLongObject *w;
  {
  	PyLongObject *div, *mod;
--- 1215,1219 ----
  
  static PyObject *
! long_mod(PyLongObject *v, PyLongObject *w)
  {
  	PyLongObject *div, *mod;
***************
*** 1326,1332 ****
  
  static PyObject *
! long_divmod(v, w)
! 	PyLongObject *v;
! 	PyLongObject *w;
  {
  	PyObject *z;
--- 1225,1229 ----
  
  static PyObject *
! long_divmod(PyLongObject *v, PyLongObject *w)
  {
  	PyObject *z;
***************
*** 1347,1354 ****
  
  static PyObject *
! long_pow(a, b, c)
! 	PyLongObject *a;
! 	PyLongObject *b;
! 	PyLongObject *c;
  {
  	PyLongObject *z, *div, *mod;
--- 1244,1248 ----
  
  static PyObject *
! long_pow(PyLongObject *a, PyLongObject *b, PyLongObject *c)
  {
  	PyLongObject *z, *div, *mod;
***************
*** 1429,1434 ****
  
  static PyObject *
! long_invert(v)
! 	PyLongObject *v;
  {
  	/* Implement ~x as -(x+1) */
--- 1323,1327 ----
  
  static PyObject *
! long_invert(PyLongObject *v)
  {
  	/* Implement ~x as -(x+1) */
***************
*** 1448,1453 ****
  
  static PyObject *
! long_pos(v)
! 	PyLongObject *v;
  {
  	Py_INCREF(v);
--- 1341,1345 ----
  
  static PyObject *
! long_pos(PyLongObject *v)
  {
  	Py_INCREF(v);
***************
*** 1456,1461 ****
  
  static PyObject *
! long_neg(v)
! 	PyLongObject *v;
  {
  	PyLongObject *z;
--- 1348,1352 ----
  
  static PyObject *
! long_neg(PyLongObject *v)
  {
  	PyLongObject *z;
***************
*** 1477,1482 ****
  
  static PyObject *
! long_abs(v)
! 	PyLongObject *v;
  {
  	if (v->ob_size < 0)
--- 1368,1372 ----
  
  static PyObject *
! long_abs(PyLongObject *v)
  {
  	if (v->ob_size < 0)
***************
*** 1489,1494 ****
  
  static int
! long_nonzero(v)
! 	PyLongObject *v;
  {
  	return ABS(v->ob_size) != 0;
--- 1379,1383 ----
  
  static int
! long_nonzero(PyLongObject *v)
  {
  	return ABS(v->ob_size) != 0;
***************
*** 1496,1502 ****
  
  static PyObject *
! long_rshift(a, b)
! 	PyLongObject *a;
! 	PyLongObject *b;
  {
  	PyLongObject *z;
--- 1385,1389 ----
  
  static PyObject *
! long_rshift(PyLongObject *a, PyLongObject *b)
  {
  	PyLongObject *z;
***************
*** 1550,1556 ****
  
  static PyObject *
! long_lshift(a, b)
! 	PyLongObject *a;
! 	PyLongObject *b;
  {
  	/* This version due to Tim Peters */
--- 1437,1441 ----
  
  static PyObject *
! long_lshift(PyLongObject *a, PyLongObject *b)
  {
  	/* This version due to Tim Peters */
***************
*** 1606,1615 ****
  #define MIN(x, y) ((x) > (y) ? (y) : (x))
  
- static PyObject *long_bitwise Py_PROTO((PyLongObject *, int, PyLongObject *));
  static PyObject *
! long_bitwise(a, op, b)
! 	PyLongObject *a;
! 	int op; /* '&', '|', '^' */
! 	PyLongObject *b;
  {
  	digit maska, maskb; /* 0 or MASK */
--- 1491,1498 ----
  #define MIN(x, y) ((x) > (y) ? (y) : (x))
  
  static PyObject *
! long_bitwise(PyLongObject *a,
! 	     int op,  /* '&', '|', '^' */
! 	     PyLongObject *b)
  {
  	digit maska, maskb; /* 0 or MASK */
***************
*** 1710,1716 ****
  
  static PyObject *
! long_and(a, b)
! 	PyLongObject *a;
! 	PyLongObject *b;
  {
  	return long_bitwise(a, '&', b);
--- 1593,1597 ----
  
  static PyObject *
! long_and(PyLongObject *a, PyLongObject *b)
  {
  	return long_bitwise(a, '&', b);
***************
*** 1718,1724 ****
  
  static PyObject *
! long_xor(a, b)
! 	PyLongObject *a;
! 	PyLongObject *b;
  {
  	return long_bitwise(a, '^', b);
--- 1599,1603 ----
  
  static PyObject *
! long_xor(PyLongObject *a, PyLongObject *b)
  {
  	return long_bitwise(a, '^', b);
***************
*** 1726,1732 ****
  
  static PyObject *
! long_or(a, b)
! 	PyLongObject *a;
! 	PyLongObject *b;
  {
  	return long_bitwise(a, '|', b);
--- 1605,1609 ----
  
  static PyObject *
! long_or(PyLongObject *a, PyLongObject *b)
  {
  	return long_bitwise(a, '|', b);
***************
*** 1734,1740 ****
  
  static int
! long_coerce(pv, pw)
! 	PyObject **pv;
! 	PyObject **pw;
  {
  	if (PyInt_Check(*pw)) {
--- 1611,1615 ----
  
  static int
! long_coerce(PyObject **pv, PyObject **pw)
  {
  	if (PyInt_Check(*pw)) {
***************
*** 1747,1752 ****
  
  static PyObject *
! long_int(v)
! 	PyObject *v;
  {
  	long x;
--- 1622,1626 ----
  
  static PyObject *
! long_int(PyObject *v)
  {
  	long x;
***************
*** 1758,1763 ****
  
  static PyObject *
! long_long(v)
! 	PyObject *v;
  {
  	Py_INCREF(v);
--- 1632,1636 ----
  
  static PyObject *
! long_long(PyObject *v)
  {
  	Py_INCREF(v);
***************
*** 1766,1771 ****
  
  static PyObject *
! long_float(v)
! 	PyObject *v;
  {
  	double result;
--- 1639,1643 ----
  
  static PyObject *
! long_float(PyObject *v)
  {
  	double result;
***************
*** 1777,1782 ****
  
  static PyObject *
! long_oct(v)
! 	PyObject *v;
  {
  	return long_format(v, 8, 1);
--- 1649,1653 ----
  
  static PyObject *
! long_oct(PyObject *v)
  {
  	return long_format(v, 8, 1);
***************
*** 1784,1824 ****
  
  static PyObject *
! long_hex(v)
! 	PyObject *v;
  {
  	return long_format(v, 16, 1);
  }
  
- 
- #define UF (unaryfunc)
- #define BF (binaryfunc)
- #define TF (ternaryfunc)
- #define IF (inquiry)
- 
  static PyNumberMethods long_as_number = {
! 	BF long_add,	/*nb_add*/
! 	BF long_sub,	/*nb_subtract*/
! 	BF long_mul,	/*nb_multiply*/
! 	BF long_div,	/*nb_divide*/
! 	BF long_mod,	/*nb_remainder*/
! 	BF long_divmod,	/*nb_divmod*/
! 	TF long_pow,	/*nb_power*/
! 	UF long_neg,	/*nb_negative*/
! 	UF long_pos,	/*tp_positive*/
! 	UF long_abs,	/*tp_absolute*/
! 	IF long_nonzero,/*tp_nonzero*/
! 	UF long_invert,	/*nb_invert*/
! 	BF long_lshift,	/*nb_lshift*/
! 	BF long_rshift,	/*nb_rshift*/
! 	BF long_and,	/*nb_and*/
! 	BF long_xor,	/*nb_xor*/
! 	BF long_or,	/*nb_or*/
! 	(int (*) Py_FPROTO((PyObject **, PyObject **)))
! 	(coercion)long_coerce, /*nb_coerce*/
! 	UF long_int,	/*nb_int*/
! 	UF long_long,	/*nb_long*/
! 	UF long_float,	/*nb_float*/
! 	UF long_oct,	/*nb_oct*/
! 	UF long_hex,	/*nb_hex*/
  };
  
--- 1655,1688 ----
  
  static PyObject *
! long_hex(PyObject *v)
  {
  	return long_format(v, 16, 1);
  }
  
  static PyNumberMethods long_as_number = {
! 	(binaryfunc)	long_add,	/*nb_add*/
! 	(binaryfunc)	long_sub,	/*nb_subtract*/
! 	(binaryfunc)	long_mul,	/*nb_multiply*/
! 	(binaryfunc)	long_div,	/*nb_divide*/
! 	(binaryfunc)	long_mod,	/*nb_remainder*/
! 	(binaryfunc)	long_divmod,	/*nb_divmod*/
! 	(ternaryfunc)	long_pow,	/*nb_power*/
! 	(unaryfunc) 	long_neg,	/*nb_negative*/
! 	(unaryfunc) 	long_pos,	/*tp_positive*/
! 	(unaryfunc) 	long_abs,	/*tp_absolute*/
! 	(inquiry)	long_nonzero,	/*tp_nonzero*/
! 	(unaryfunc)	long_invert,	/*nb_invert*/
! 	(binaryfunc)	long_lshift,	/*nb_lshift*/
! 	(binaryfunc)	long_rshift,	/*nb_rshift*/
! 	(binaryfunc)	long_and,	/*nb_and*/
! 	(binaryfunc)	long_xor,	/*nb_xor*/
! 	(binaryfunc)	long_or,	/*nb_or*/
! 	(int (*) (PyObject **, PyObject **))
! 		(coercion)long_coerce,	/*nb_coerce*/
! 	(unaryfunc)	long_int,	/*nb_int*/
! 	(unaryfunc)	long_long,	/*nb_long*/
! 	(unaryfunc)	long_float,	/*nb_float*/
! 	(unaryfunc)	long_oct,	/*nb_oct*/
! 	(unaryfunc)	long_hex,	/*nb_hex*/
  };
  
***************
*** 1829,1845 ****
  	sizeof(PyLongObject) - sizeof(digit),
  	sizeof(digit),
! 	(destructor)long_dealloc, /*tp_dealloc*/
! 	0,		/*tp_print*/
! 	0,		/*tp_getattr*/
! 	0,		/*tp_setattr*/
! 	(int (*) Py_FPROTO((PyObject *, PyObject *)))
! 	(cmpfunc)long_compare, /*tp_compare*/
! 	(reprfunc)long_repr, /*tp_repr*/
! 	&long_as_number,/*tp_as_number*/
! 	0,		/*tp_as_sequence*/
! 	0,		/*tp_as_mapping*/
! 	(long (*) Py_FPROTO((PyObject *)))
! 	(hashfunc)long_hash, /*tp_hash*/
!         0,              /*tp_call*/
!         (reprfunc)long_str, /*tp_str*/
  };
--- 1693,1709 ----
  	sizeof(PyLongObject) - sizeof(digit),
  	sizeof(digit),
! 	(destructor)long_dealloc,	/*tp_dealloc*/
! 	0,				/*tp_print*/
! 	0,				/*tp_getattr*/
! 	0,				/*tp_setattr*/
! 	(int (*) (PyObject *, PyObject *))
! 		(cmpfunc)long_compare,	/*tp_compare*/
! 	(reprfunc)long_repr,		/*tp_repr*/
! 	&long_as_number,		/*tp_as_number*/
! 	0,				/*tp_as_sequence*/
! 	0,				/*tp_as_mapping*/
! 	(long (*) (PyObject *))
! 		(hashfunc)long_hash,	/*tp_hash*/
!         0,              		/*tp_call*/
!         (reprfunc)long_str,		/*tp_str*/
  };