After eight hours of pain try to make 'classmethod' working in Cython, I've found 'extrange' stuff in Python 3.0 sources, specifically at 'typeobject.c' . Please, open the file or just hit the following direct link:
http://svn.python.org/projects/python/branches/py3k/Objects/typeobject.c and look at the macro definition pasted below, it is at the begining of the file: #define MCACHE_CACHEABLE_NAME(name) \ PyString_CheckExact(name) && \ PyString_GET_SIZE(name) <= MCACHE_MAX_ATTR_SIZE Does make any sense the PyString_XXXX there??? If this is a nonsense, surelly from a bad merge from Py2.6 or cut-and-paste error, then I now definitely understand way I was having trouble with the new method cache in 2.6 but NOT in 3.0. In 3.0, the method cache is just not working because the macro definition is wrong, identifiers are never byte strings in Py3.0 !! -- Lisandro Dalcín --------------- Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC) Instituto de Desarrollo Tecnológico para la Industria Química (INTEC) Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET) PTLC - Güemes 3450, (3000) Santa Fe, Argentina Tel/Fax: +54-(0)342-451.1594 _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
