Porting issues

Andreas Raab andreas.raab at gmx.de
Wed Jan 28 07:41:36 UTC 2004


> 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 mailing list