On Mon, Feb 28, 2011 at 8:33 AM, Lisandro Dalcin <dalc...@gmail.com> wrote: > Bringing up this old post... > > On 21 June 2010 15:41, Robert Bradshaw <rober...@math.washington.edu> wrote: >> On Jun 17, 2010, at 9:31 AM, Lisandro Dalcin wrote: >> >>> If we special case a __dict__ attribute in extension types, i.e: >>> >>> cdef class Foo: >>> cdef dict __dict__ >>> >>> and fill type->tp_dictoffset, then we can support __dict__ in >>> extension types. >>> >>> What do you think? >> >> Sounds like a good idea to me. Note that we check tp_dictoffset for >> fast dispatching for cpdef methods (which would be correct as a dict >> lookup *would* be needed if __dict__ is available). >> > > I still have this patch lying around in my disk. I remember Stefan had > some objections. For example, when the user ask for __dict__, a new > dict is unconditionally created (in CPython, type dict are allocated > on-demand). I propose to get this patch pushed now, and optimize > later (however, I really don't know how to safely implement this > optimization).
Note there's also the issue of cpdef methods--if the instance has a __dict__ then a dict lookup must be performed for every method call (to make sure it's not overridden). - Robert _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel