[Python-Dev] Accessing globals without dict lookup
Jason Orendorff
jason@jorendorff.com
Fri, 8 Feb 2002 22:09:59 -0600
Fri, 8 Feb 2002 22:09:59 -0600
- Previous message: [Python-Dev] Accessing globals without dict lookup
- Next message: [Python-Dev] Accessing globals without dict lookup
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Guido van Rossum wrote: > - Let a cell be a really simple PyObject, containing a PyObject > pointer and a cell pointer. Both pointers may be NULL. (It may > have to be called PyGlobalCell since I believe there's already a > PyCell object.) (Maybe it doesn't even have to be an object -- it > could just be a tiny struct.) > > - Let a celldict be a mapping that is implemented using a dict of > cells. When you use its getitem method, the PyObject * in the cell > is dereferenced, and if a NULL is found, getitem raises KeyError > even if the cell exists. Using setitem to add a new value creates a > new cell and stores the value there; using setitem to change the > value for an existing key stores the value in the existing cell for > that key. There's a separate API to access the cells. The following is totally unimportant, but I feel compelled to share: I implemented this once, long ago, for Python 1.5-ish, I believe. I got it to the point where it was only 15% slower than ordinary Python, then abandoned it. ;) In my implementation, "cells" were real first-class objects, and "celldict" was a copy-and-hack version of dictionary. I forget how the rest worked. Anyway, this is all very exciting to me. :) ## Jason Orendorff http://www.jorendorff.com/
- Previous message: [Python-Dev] Accessing globals without dict lookup
- Next message: [Python-Dev] Accessing globals without dict lookup
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]