[Cython] Assignments in cdefs
Dag Sverre Seljebotn
dagss at student.matnat.uio.no
Sun Jul 20 21:02:03 CEST 2008
Stefan Behnel wrote:
> Hi,
>
> Dag Sverre Seljebotn wrote:
>> Stefan Behnel wrote:
>>> What about code like this:
>>>
>>> def test(a):
>>> cdef int c
>>> if a:
>>> c = 1
>>> if not a:
>>> c = 2
>>>
>>> How would you know what is a "first assignment" here? And what would you gain
>>> from your ref-counting optimisation in this case?
>> As for the example, it is a "best-effort" thing. If no assignments are
>> flagged as first, then the optimization just doesn't happen, which is
>> the likely outcome of your example.
>
> Then what exactly is your "ref-counting optimisation" doing? Can you give me a
> code example?
It makes "cdef int x = 3" behave as before, no more or less. Just
refactoring the code so that buffer worked. I needed to put the stuff
that handled the difference in refcounting somewhere, and that somewhere
leaves a hole in which to plug further improvements, so it was a natural
name, but it doesn't mean that it is more optimized than it used to be.
--
Dag Sverre
More information about the Cython-dev
mailing list