[Python-Dev] Accessing globals without dict lookup
Tim Peters
tim.one@comcast.net
Tue, 12 Feb 2002 15:24:47 -0500
[Fred]
> Have we become convinced that these cells need to be Python objects?
No, it's just easier that way. The existing dict code maps PyObject* to
PyObject*, so we'd have to copy and fiddle *all* of the dict code if a
celldict wants to map to anything other than a PyObject*.
> I must have missed that. As long as we can keep them simple
> structures, we should be able to avoid individual allocations for
> them. It seems we have a fixed number of cells for both module
> objects and function objects (regardless of whether they are part of
> the new celldict or the containing function or module), so they can be
> allocated as an array rather than individually.
>
> So, I must be missing something.
cells don't live in function objects; a function object only has a vector of
pointers *to* cells, and that is indeed a contiguous, fixed-size array.
cells are the values in celldicts, and that's the only place they appear,
and celldicts can grow dynamically (import fred; fred.brandnew = 1).