[Vm-dev] Squeak Object Engine Message Sending clarification
gettimothy at zoho.com
Sun Dec 8 18:12:02 UTC 2013
Thank you Tim.
>From what I have gathered in this thread, the process is (loosely speaking, I will tighten up my terminology when I see the outline of the parts and delve into the details)...
0. VM references stack for Oop
1. Using the Oop, VM references the header on the object in ObjectMemory (see comment in ObjectMemory)
Just that fact that it goes out to ObjectMemory, instead of "receiver class methodDict" to me, hints at some interesting stuff and is a
very important distinction.
Thank you all again,
---- On Sun, 08 Dec 2013 09:57:33 -0800 tim Rowledge<tim at rowledge.org> wrote ----
On 08-12-2013, at 8:19 AM, gettimothy <gettimothy at zoho.com> wrote:
> No need to go into details as I am just attempting to avoid a misconception.
> On page 5 of 28 on Tim Rowledge's (very useful and enjoyable, btw) A Tour of the Squeak Object Engine
> I am unclear as to what object's header' refers to in step I.
> To send a message to a receiver, the VM has to:-
> I. find the class of the receiver by examining the object's header.
> II. lookup the message in the list of messages understood by that class
> (the class's MethodDictionary)
Back on page 2 of my doc, -
> 1. Creating Objects
> Unlike structures in C or records in Pascal, Smalltalk objects are not simply chunks of memory to which we have pointers, and so we need something more sophisticated than the C library malloc() function in order to create new ones.
> Smalltalk creates objects by allocating a chunk of the object memory and then building a header that provides the VM with important information such as the class of the object, the size and some content format description.
I really ought to update the doc and add some more diagrams etc.
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Useful Latin Phrases:- Recedite, plebes! Gero rem imperialem! = Stand aside plebians! I am on imperial business.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Vm-dev