[Newbies] true/false defined where?

K. K. Subramaniam subbukk at gmail.com
Wed Aug 6 02:58:06 UTC 2008


On Tuesday 05 Aug 2008 6:39:01 pm Sean Allen wrote:
> I have a feeling the secret to unraveling that confusion comes from
> this:
>
> 'true and false and some of the very few objects known to the VM'
An object in Squeak contains between two to three header words (object 
descriptor, class and size). Some objects which are required to bootstrap an 
image into existence or which are frequently exchanged between VM and image 
are held in a array and its index is packed into the descriptor word itself 
leading to a compact one-word header.
e.g.
   oop -> the object whose class is number 5 size 4 words
instead of
   oop -> the object whose class is at 0x3058587474 size 4 words

When the VM encounters an object descriptor of the first type, it will look up 
the class number in the global variable, specialObjectsArray to extract the 
class pointer. The number and order of elements in this array has to be 
finalized at the time of compiling VM code. This explains the "objects known 
to the VM" part. If the number or order of indexed objects are changed in 
Image, a new VM has to be compiled with these changes.

How does the VM know where to find specialObjectsArray? from the header in the 
image file (fifth 32-bit slot).

Subbu


More information about the Beginners mailing list