andreas.raab at gmx.de
Wed Jan 28 07:56:45 UTC 2004
> Thanks for all the answers, and please excuse my ignorance but what is
> a DNU and where do I buy one <grin> ?
A DNU is a "doesNotUnderstand:" - a message sent by the VM if the receiver
does not respond to a particular message being sent, such as "3 zork". It is
one of the few messages that are ever sent by the VM itself and also one of
the most common errors (often resulting from other problems).
> Thanks again.
> On Jan 28, 2004, at 9:41 AM, Andreas Raab wrote:
> >> Is there an easy way to find the oop of a class with a particular name
> >> from within the VM ?
> > Depends. If there's a well-known set of classes you need access to,
> > you can
> > stick them into the VM's special objects array (check out
> > Smalltalk>>recreateSpecialObjectsArray and in particular the FFI
> > classes
> > which are put in there - this should give you a good example). If you
> > need
> > to find these classes dynamically - that's a much harder problem. Your
> > best
> > choice might be to introduce a simple registry in the image and stick
> > the
> > registry into splObjects.
> >> What is the approved way of storing pointer oops into instance
> >> variables, is it storePointer:ofObject:withValue ?
> > Yes.
> >> Is there some vague documentation about the nature of the "boot"
> >> process in the image, i.e. I understand that one can track the process
> >> via reading what happens after a snapshot in SystemDictionary, but
> >> there is a lot of very convoluted code there and I seem to be getting
> >> strange behavior, in that my port is correctly calling ioScreenSize,
> >> and ioHasDisplayDepth, but ioForceDisplayUpdate and ioShowDisplay,
> >> never seem to get called.
> > Speaking from experience with porting Squeak, most likely you're
> > running
> > into some error which prevents those methods from being called. If you
> > can,
> > augment your VM in a way that prints out occurances of DNU to see
> > what's
> > happening (most errors ultimately result in a DNU somewhere so if you
> > print
> > a call stack you should be able to figure out what is going wrong).
> > Cheers,
> > - Andreas
More information about the Squeak-dev