On Tue, Jul 1, 2008 at 1:21 PM, tim Rowledge <tim@rowledge.org> wrote:

On 1-Jul-08, at 12:25 PM, Eliot Miranda wrote:
[snip]


Gettng rid of both obsolete tables is a really good thing (and I've already done it).
Good


Getting rid of indexed primitives for the core does not save anything.  There still has to be a table somewhere that maps the primitive name to the primitive function.  All you do is replace a table mapping indices to functions with one mapping strings to functions. You can't reply on the OS to do the lookup because you won't be able to strip VM executables if you do and that really costs space.
Sure; there's always got to be some way of looking up things. It will always take some space and time. But surely trading space/time for more flexible and smarter is what Smalltalk is all about?

Smalltalk is about a lot of things.  One is minimality (everything's an object).  Use Occam's razor.  Named primitives for the core prims is a flourish one doesn't need.  As my first wife was fond of saying "Don't sweat the petty stuff.  Pet the sweaty stuff."

More seriously, the VM should be as minimal as possible and I've shown (I think) that e.g. named primitive support can be lifted into the image and be much more flexible and extensible there.  But the same can't be done with the core primitives.  We can't have a circularity were the system needs to use core primitives to bind core primitives.   So (I tell myself) keep it simple stupid.  Just use an index.