The global symbol-table would deal with:
- the unique numbering of symbols based on string comparison
- the holding of global variables (array names / receive-symbols)
A "local" symbol-table would deal with:
- the holding of "local" variables
- 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 ...
any other possible solutions?
cheers ... tim