[Cython] module cleanup

Stefan Behnel stefan_ml at behnel.de
Thu Feb 26 17:21:50 CET 2009


Stefan Behnel wrote:
> Dag Sverre Seljebotn wrote:
>> let all global values be referenced by a big tuple; then have each 
>> type and the module reference the tuple, but the tuple itself doesn't 
>> reference anything but the values themselves => no cycles.
> 
> Although "globals" would also include types, right? So there's our
> reference cycle back... (although that doesn't hit us until we really start
> moving types to the heap)

BTW, a tuple isn't enough here. I sometimes write things like this in my code:

	cdef str NAMESPACE = "http://sdffsadf.org/jhshdkflh/fsdfs"
	cdef char* _NAMESPACE = NAMESPACE

i.e. you'd need an extension class to also reference the module-local C
values, which may depend on module-local Python values.

Also note that the PEP has a way to store module-local state. Since this is
a Py3-only feature, we might just as well use that.

Stefan




More information about the Cython-dev mailing list