Hi all.
This is a rather philosophical question: is it a bug if the VM crashes,
showing either a General Protection Fault, Segmentation Fault and core
dump, or whatever the local operating system does?
I've discovered a few ways of generating segmentation faults (under
Linux) using Squeak. One was playing around with CompiledMethods; I
accidently broke a literal reference such that when the garbage
collector ran, Squeak crashed.
This may or may not be a bug depending on whether you want to add bounds
checking to the garbage collector, which may have a performance penalty.
Another way is the following, done in the workspace:
b := BlobMorph class.
m := Metaclass new.
m superclass: (b superclass) methodDictionary: (b methodDictionary)
format: 2.
t := m new.
t class printIt.
In this case, format is invalid. It should be 152. Here, I was just
being stupid.
So the question, again, is: should the VM *never* crash and protect
against very curious, stupid programmers like myself, or should it work
fine until the programmer becomes curious and stupid?
Michael.