[Vm-dev] An event driven Squeak VM

Igor Stasenko siguctua at gmail.com
Wed Nov 11 19:32:46 UTC 2009

2009/11/11 Andreas Raab <andreas.raab at gmx.de>:
> Eliot Miranda wrote:
>> Andreas counters that implementing the abstractions in the VM keeps them
>> well-defined and free from meddling.  But that runs counter to the
>> philosophy of an open system and preventing inadvertent meddling is
>> something Smalltalk has to do anyway  (e.g. "Process should not be
>> redefined, proceed to store over it").  The nice things about shooting
>> oneself in the foot by meddling with a Smalltalk system are that a) it
>> doesn't really do any harm and b) the debugging of it can be a great
>> learning experience.
> I disagree with both of these statements 100%. First, once you have passed
> the first invalid pointer to some C function you will find out the hard way
> that "not really doing any harm" means, oh well it'll crash your image
> instead of raising a debugger. The consequence of this is that for any
> serious development you will no longer want to do in-image development;
> consider writing C code inside the running C app and then have it core-dump
> every time you misspell something. Not exactly my definition of "not really
> doing any harm". Secondly, wading through gobs of platform specific code is
> only a great learning experience if you are trying to learn platform
> specific stuff. Otherwise it's a useless distraction that only gets into
> your way of seeing (and using) the abstractions.

Excuse me for intrusion, but as you said, passing wrong pointer to
some C function having
same consequence either you doing it from C program or from smalltalk one.
So, what the difference? It is the price we pay, and will pay anyways
, when developing applications which
using unmanaged C code.
Someone has to go through the pain debugging the code which using C
libraries. And he will have to deal with
core dumps. Be it core dump of VM or core dump of any other program,
it is still a core dump - a signal that something gone wrong.

Also, trying to keep users away from platform-specific stuff is a good
intent.. but it means that someone, at some day dealt with this stuff
instead of you. One, who had to get through numerous core dumps &
crashes until he had a stable code, ready for use by others. So, what
makes that developer any different from anyone else, who trying to do
something which requires use of some platform-specific library?

> Cheers,
>  - Andreas

Best regards,
Igor Stasenko AKA sig.

More information about the Vm-dev mailing list