Thu Mar 2 12:02:04 EST 2006
stacks (recovered from stacks.txt)
This file dealed with:
(A) more stacks other than data/return/dict
(B) memory management for circular refs
These are largely solved. (A) We don't have more than these 3
stacks, since I/O stacks are (were) there to provide 'execution
context' which can be easily put on the data stack, for fast
changing context, or on the return stack, for slower changing
For (B). Everything which uses circular refs is not managed.
All data structures are strictly trees: meaning all data is
owned by one owner at a time. All the rest is solved using
'atom pointers' or variables. These pointers do not 'own'
the data they point to, so if the underlying data is destroyed,
pointers become stale.
Another remark. Some objects are not managed using reference
counts, i.e. they are not packets. This should be fixed:
* display lists