While compiling psyco under Python 3000, I ran into some issues that  
might be of interest.

At the C level:

statichere & staticforward caused the oddest error messages.

The removal of Py_TPFLAGS_HAVE_XXX touched the most places.

I think it be possible to redefine PyType_HasFeature and all of the  
old flags
in a compatibility header file, something like :

#define PyType_HasFeature(t,f)  ((f) && ( ((t)->tp_flags & (f) ) != 0))

nb_divide and nb_nonzero changes popped up a lot too.

At the python level:

Forced absolute imports was the only syntax issue not handled by 2to3.

This wrinkle of absolute imports surprised me:

 >>> from .sibling import *
   File "<stdin>", line 1
SyntaxError: 'import *' not allowed with 'from .'

This is a Python 3000 behavior:

 >>> hash(sys._getframe())
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'frame'

Potentially a bunch of types will become unhashable since this
code was removed from PyObject_Hash:

         if (tp->tp_compare == NULL && RICHCOMPARE(tp) == NULL) {
                 return _Py_HashPointer(v); /* Use address as hash  
value */
         }

I was wondering whether those two behaviors could be changed.

Thanks
-Tony

_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to