Stefan Behnel, 13.01.2011 16:32:
> Stefan Behnel, 13.01.2011 15:53:
>> Sébastien Sablé, 13.01.2011 13:45:
>>> #cython: infer_types=True
>>>
>>> cdef get_field_flags():
>>> flags = []
>>> append = flags.append
>>> append('fetched')
>>> ^
>>> ------------------------------------------------------------
>>>
>>> magnum/magpy.pyx:6:10: Call with wrong number of arguments (expected 2,
>>> got 1)
>>>
>>> The same code would work great with cython 0.13 and it would work with
>>> 0.14.1 if I remove the infer_types=True line.
>>
>> Thanks for the report. It's quite possible that the type inference
>> mechanism now assumes that the bound method is actually the C-API function
>> replacement, i.e. the C function PyList_Append(). That's the wrong thing to
>> infer here as it cannot be made to work.
>
> Here's another related problem:
>
> # cython: infer_types=True
>
> cdef int func(int x):
> return x+2
>
> def inferred():
> f = func
>
> 'f' is inferred as C function, not as function pointer.
>
> http://trac.cython.org/cython_trac/ticket/643
> http://trac.cython.org/cython_trac/ticket/644
Fixes are here:
https://github.com/cython/cython/commit/3ac5fb86833de2831e72bd368fab6b6f1fb03ec2
https://github.com/cython/cython/commit/48177ec6f603d7ae88ee6302bfe5c4c299cd350a
Stefan
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev