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/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4