[Cython] Proposal: idea for automatic management of dynamic memory
Stefan Behnel
stefan_ml at behnel.de
Fri Apr 11 12:47:45 CEST 2008
Hi,
Robert Bradshaw wrote:
>>> The main idea (Lisandro came up with this) is to build these
>>> capabilities into cython itself by introducing the following syntax:
>>>
>>> cdef foo(size):
>>> cdef double a[size] # This is like the dynamic arrays in C99
>>> # do stuff with a, but don't worry about deallocating the memory!!!
[...]
> and coerce it too (or from?) a Python object.
I find that a funny idea. We could generate an internal array iterator class
that yields the coerced Python values in order, so that "list(a)" would work. :)
>> 3) Long-term Python users with very little C experience might end up
>> doing something like
>>
>> cdef double a[size]
>> # fill in a
>> return a
>
> If the return type is double*, an error can be given at compile time,
> and if it's object it could even coerce to a Python list. I would say
> a can neither be assigned to or used as an assignment to something
> else--just indexed.
Exactly. It's not a pointer, it's an array.
Stefan
More information about the Cython-dev
mailing list