<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style='font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif;'>Thank you.<br><br>tty<br><div id="1"><br>---- On Sun, 08 Dec 2013 08:54:46 -0800 <b>Bob Arning &lt;arning315@comcast.net&gt;</b> wrote ---- <br></div><br><blockquote style="border-left: 1px solid #0000FF; padding-left: 6px; margin:0 0 0 5px">               <div text="#000000" bgcolor="#FFFFFF">     <font face="Georgia">"object" in this case is something on the       stack. Sending a message involves pushing the receiver ("object")       and arguments onto the stack and then sending the message (some       variant of send bytecode) which causes the vm to look on the stack       for the receiver and then follow the receiver's class chain to       find the suitable method.<br>       <br>       <br>     </font>     <div>On 12/8/13 11:19 AM, gettimothy wrote:<br>     </div>     <blockquote cite="mid:142d3021b1f.-648365842<a href=" mailto:0070793191.1434645168690466260@zoho.com"="" target="_blank">0070793191.1434645168690466260@zoho.com" type="cite"&gt;       <pre wrap=""> </pre>       <br>       <fieldset></fieldset>       <br>              <div style="font-size:10pt;font-family:verdana,arial,helvetica,sans-serif;">No         need to go into details as I am just attempting to avoid a         misconception.<br>         <br>         On page 5 of 28 on Tim Rowledge's (very useful and enjoyable,         btw) <a href="http://www.rowledge.org/resources/tim%27s-Home-page/Squeak/OE-Tour.pdf" target="_blank">A Tour of the Squeak Object Engine</a><br>         &nbsp;I am unclear as to what&nbsp; object's header' refers to in step <b>I</b>.<br>         <br>         <br>         To send a message to a receiver, the VM has to:-<br>         &nbsp;<b>&nbsp; I.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; find the class of the receiver by examining the           object's header.&nbsp; </b><br>         &nbsp;&nbsp; II.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lookup the message in the list of messages         understood by that class<br>         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (the class's MethodDictionary)<br>         ........etc...<br>         <br>         <br>         It seems 'obvious' to me that it has to be something in the         current MethodContext,&nbsp; and that 'object' does not refer to         something out in ObjectMemory <br>         <br>         Is that a valid assumption?<br>         <br>         The BlueBook states this methodology<br>         <br>         ****** Messages PDF 584<br>         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When a send bytecode is encounterd the interpreter finds         the CompiledMethod indicated by the message as follows:<br>         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. /Find the message receiver./ The receiver is below the         arguments on the stack. The number of arguments is indicated in         the send bytecode.<br>         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. /Access a message dictionary./ The original message         dictionary is found in the receiver's class.<br>         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. /Look up the message selector in the message         dictionary./ The selector is indicated in the send bytecode.<br>         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. /If the selector is found,/ the associated         CompiledMethod describes the response to the message.<br>         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5. /If the selector is not found,/ a new message         dictionary must be searched (i.e. go to step 3) but check the         method dictionary of the superclass of the last class.<br>         <br>         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6. /If all the superclasses are searched and the selector         is not found, an error is reported and exectuion of the bytcodes         following the send is suspended.<br>         <br>         <br>         Meanwhile, the structure of the Squeak MethodContext&nbsp; has a         pointer to the receiver as well.<br>         <br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; + Method Context Structure<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ---------------------------------------<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ^ sender (pointer to previous context)<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ---------------------------------------<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + instruction ponter&nbsp;&nbsp; --------&gt; points to current         bytecode in the CompiledMethod's 'Bytecodes' section (see Format         of CompiledMethod instances above)<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ---------------------------------------<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + stack Pointer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------&gt; points to Stack         Contents at bottom of this structure<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ---------------------------------------<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + method&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------&gt; points to         MethodHeader section in the CompiledMethod (see Format of         CompiledMethod instances above)<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ---------------------------------------<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + unused<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ---------------------------------------<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + receiver<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ---------------------------------------<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + arguments<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ---------------------------------------<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + temporaries<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ---------------------------------------<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + stack contents<br>         &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; + ---------------------------------------<br>         <br>         <br>         <br>         <br>         Thx.<br>         <br>         tty.<br>       </div>     </blockquote>     <br>    </div></blockquote><br></div></body></html>