From: [...] jwalsh@bigpond.net.au Thanks Ross, you have given me the partial answer to a problematic which has bugged me for a while: It started off as "Is Smalltalk safe from Windows?", Then progressed to "Is Smalltalk safe from 'C' ?", Now its "Is Smalltalk Safe from Smalltalk". This was originally a problem which could not ever happen to Smalltalk. Encapsulation and Message passing meant the Method was safe, from intrudere.
... it's not. Object has plenty of debugging methods for poking at slots on arbitrary objects. It's relatively simple to overwrite a CompiledMethod's bytecodes and even simpler just to replace the method with one you compile up. There is nothing mystical about objects; they're just data. In order to run a debugger, *something* has to break encapsulation.
Can someone please convince me that Smalltalk is safe from 'C' hackers.
On the contrary, I can convince you the other way. Object memory in Smalltalk is merely bytes at locations in memory; the VM uses a C-language stack for some of its work, which can be attacked; and the virtual machine is a chunk of compiled C. If the VM can do it, attacking code can do it; and the VM is the only way of creating any effect in Smalltalk. Therefore, all the effects that you see in Smalltalk can be duplicated by C code, because they are *created* by C code. There is nothing mystical about objects, image, or anything else.
- Peter