[fixed subject]

Romain Guillebert, 12.08.2011 03:19:
I tried to compiled Demos/primes.pyx using the ctypes backend and I
think I've found a bug :
The Entry for the kmax parameter does not set is_arg to 1. However if I
turn the def into a cdef, it works fine.

Is this a bug or a known hack ?

Vitja already brought this up, too:

http://article.gmane.org/gmane.comp.python.cython.devel/12385

A quick grep on the sources gives me this:

"""
Cython/Compiler/Buffer.py:            if entry.is_arg:
Cython/Compiler/Buffer.py:                if entry.is_arg:
Cython/Compiler/ExprNodes.py: return entry and (entry.is_local or entry.is_arg) and not entry.in_closure Cython/Compiler/FlowControl.py: return (entry.is_local or entry.is_pyclass_attr or entry.is_arg or
Cython/Compiler/FlowControl.py:        self.is_arg = False
Cython/Compiler/FlowControl.py:        self.is_arg = True
Cython/Compiler/FlowControl.py:                if assmt.is_arg:
Cython/Compiler/FlowControl.py: # TODO: starred args entries are not marked with is_arg flag
Cython/Compiler/FlowControl.py:                if assmt.is_arg:
Cython/Compiler/FlowControl.py:                    is_arg = True
Cython/Compiler/FlowControl.py:                is_arg = False
Cython/Compiler/FlowControl.py:            if is_arg:
Cython/Compiler/Symtab.py: # is_arg boolean Is the arg of a method
Cython/Compiler/Symtab.py:    is_arg = 0
Cython/Compiler/Symtab.py:        entry.is_arg = 1
"""

This doesn't look like it would be wrong (or even just unsafe) to consider the unset flag a bug and fix it. Basically, it's almost unused in the original sources, all places where the flag is being read currently are somewhat recent code that looks reasonable to me and that appear to assume that the flag is actually set.

So, I'd say, if anyone wants to properly clean this up, please go ahead and do so, but please do it right on the master branch and send it through Jenkins.

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

Reply via email to