The global symbol-table would deal with:
1. the unique numbering of symbols based on string comparison
2. the holding of global variables (array names / receive-symbols)
A "local" symbol-table would deal with:
1. the holding of "local" variables
2. that's all
The $-prefixes would really become scope indicators. $0-hello would
access the local table $0 using the t_symbol "hello". This would *not*
create a t_symbol "1000-hello" anymore.
i was thinking about this ... from my point of view, there are 2
different ways to implement this:
1. rewrite the $X resolving:
at the moment it'd not known, if a symbol starts with $0, $2 or 1234 ...
the resolving is done when the object is being created... this could be
changed by using $X as kind of namespaces with a symbol table for every
parent canvas ... i think this would be the most elegant solution...
2. hack gensym:
if the string begins with a number, use the corresponding symbol table
... still, this would be an ugly hack ...
i'd prefer the first solution, although it would change most of pd's $X
handling ... it's cleaner, though ...