Dennis Lee Bieber <wlfr...@ix.netcom.com> writes: >> GC's for large systems ... copy the live objects to a new contiguous heap
> That sounds suspiciously like the original Macintosh OS, with its > "handles"... IE, double-indirection. Nah, a double indirection on every access would be a terrible performance hit. The classic approach is when you move an object to the new heap, you leave a tagged forwarding pointer at its former location the old heap, giving the its location in the new heap. Then as you move other objects, you dereference the pointers in them to see whether they point to moved or unmoved objects, and relocate any unmoved ones. A more complete explanation is here: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-33.html#%_sec_5.3.2 -- http://mail.python.org/mailman/listinfo/python-list