Vitja Makarov, 19.06.2011 21:37:
Trying to compile django I've found some problems:

1. It seems that cython currently doesn't support tuples inside args definition:

def foo((a, b), c):

Currently this gives missing argument name and crash inside
CreateControlFlow graph

cython -X binding=True django/contrib/gis/forms/fields.py -o
django/contrib/gis/forms/fields.c

It may be valid Py2-only syntax, but I consider its usage a bug in Django.


2. Concatenating unicode and str isn't supported:

I guess that this is mostly django problem

Error compiling Cython file:
------------------------------------------------------------
...
     default_error_messages = {
         'no_geom' : _(u'No geometry value provided.'),
         'invalid_geom' : _(u'Invalid geometry value.'),
         'invalid_geom_type' : _(u'Invalid geometry type.'),
         'transform_error' : _(u'An error occurred when transforming
the geometry '
                               'to the SRID of the geometry form field.'),
                              ^
------------------------------------------------------------

django/contrib/gis/forms/fields.py:21:30: Cannot mix string literals
of different types, expected u'', got ''

That's a bug in Django. Worth submitting a patch to their bug tracker. It works in this case, but it's not what they want in their code:

    >>> u'abc\u1234'
    u'abc\u1234'
    >>> u'abc' '\u1234'
    u'abc\\u1234'


3.Reraise not inside except clause, here is simple example

def foo():
     print 'catched'
     raise
try:
     raise IndexError
except IndexError:
     foo()

It would be possible to support this, given that we are compatible with CPython regarding the place where exceptions are stored while being handled. Despite of what I initially thought, this is a feature of both Py2 and Py3, even though I expect it to be rarely used and somewhat error prone.

Stefan
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to