[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/)