[self-interest] embedding based prototype languages
asynth at io.com
Fri Nov 8 05:57:36 UTC 2002
Thanks for the long reply. It seems like you've made things fast for
common execution, but have made creating and modifying prototypes very
expensive in time and space.
> The drawback is that sometimes an object has to change maps after a
> programming change (added or removed a slot) and that means changing
> the object's pointer, which means scanning the whole memory to update
> any references to the old pointer.
> When you make any programming
> changes the new string is used to build a new map, which is then
> compiled and finally any of the object's children are recompiled.
> Besides the source string, a map contains a table and machine language
> code. This table includes a two word entry for every single selector
> defined in the system. There can be up to 4096 selectors, so this per
> map table can grow to be as much as 16KB!! But like I said, I have
> memory to spare. The tables for all maps are always exactly the same
> size and they grow as you define new selectors.
So this is the equivalent in a class based system of having a full all
classes by all selectors matrix.
> And about the resends, the compiler simply inlines the parent's source
> for the method into the spot where the resend was.
So you can't reassign a method slot? Or if you do you have to rebuild
the map of all children..
--- james mccartney james at audiosynth.com <http://www.audiosynth.com>
SuperCollider - a real time synthesis programming language for the
More information about the Self-interest