[Python-Dev] various unix platform build/test issues

Guido van Rossum guido@python.org
Tue, 18 Feb 2003 11:17:04 -0500


> It ain't real pretty, but it could be worse:
> 
>         http://metaslash.com/py/2.3-problems.html

Thanks!

> I'm trying to commit changes to the logging package, but SF has a
> stale CVS lock for anoncvs_python.  I filed a support request.
> Hopefully they will have it fixed within a month or two, at least by
> the time 2.3 is ready to be released.  I don't know if the updates are
> supposed to fix the test hangs/failures for test_logging.

I this done now?  (I saw a bunch of checkins to logging stuff.)

> Here's the problem highlights (there are more, follow the link):
> 
>   * There are 3 64-bit issues:
>         http://python.org/sf/688424

You fixed these now.

(I'm not real excited about the following to subjects, do what you see
fit.)

>   * test_pty hangs on 3 platforms, possible fix:
>         http://python.org/sf/671384

(Sounds find to me.)

>   * test_resource can fail when filesize is limited
>         http://python.org/sf/678264

(Ditto.)

>   * iconv module calls PyFatalError() if the C module initialization 
>         fails, is there a better way to handle this?  I had to
>         disable building iconv on AIX.

Yes, you can raise an exception and return.  This is a bit weird
(there's no return value) but AFAIK it is documented that a module
init function can raise an exception and return to indicate failure.

>   * AIX sorts numbers and strings in a different order than Linux:
> 
>         >>> 'ick' >= 0  # Linux
>         True
> 
>         >>> 'ick' >= 0  # AIX
>         False
> 
>      This causes failures for test_descrtut and test_random.

I have a tentative fix for this (use PyNumber_Check() in
default_3way_compare() and augment PyNumber_Check() to test whether
the type defines nb_int).  Can you check this on AIX?  [*]

> I don't expect to get these taken care of for 2.3a2 assuming
> it's released tomorrow.  It would be nice to have most of
> the platforms clean for the beta.

Yes.

[*] Patch:

Index: Objects/object.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/object.c,v
retrieving revision 2.197
diff -c -r2.197 object.c
*** Objects/object.c	5 Feb 2003 19:35:19 -0000	2.197
--- Objects/object.c	18 Feb 2003 16:15:53 -0000
***************
*** 633,640 ****
  	if (w == Py_None)
  		return 1;
  
! 	/* different type: compare type names */
! 	if (v->ob_type->tp_as_number)
  		vname = "";
  	else
  		vname = v->ob_type->tp_name;
--- 633,640 ----
  	if (w == Py_None)
  		return 1;
  
! 	/* different type: compare type names; numbers are smaller */
! 	if (PyNumber_Check(v))
  		vname = "";
  	else
  		vname = v->ob_type->tp_name;
Index: Objects/abstract.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/abstract.c,v
retrieving revision 2.117
diff -c -r2.117 abstract.c
*** Objects/abstract.c	12 Feb 2003 03:36:05 -0000	2.117
--- Objects/abstract.c	18 Feb 2003 16:15:54 -0000
***************
*** 308,314 ****
  int
  PyNumber_Check(PyObject *o)
  {
! 	return o && o->ob_type->tp_as_number;
  }
  
  /* Binary operators */
--- 308,315 ----
  int
  PyNumber_Check(PyObject *o)
  {
! 	return o && o->ob_type->tp_as_number &&
! 	       o->ob_type->tp_as_number->nb_int;
  }
  
  /* Binary operators */

--Guido van Rossum (home page: http://www.python.org/~guido/)