<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Bert,<br>
My answers inline below.<br>
<br>
On 2009.08.22 17:26, Bert Freudenberg wrote:
<blockquote
 cite="mid:D3064A4B-A094-41BD-9026-1885EE9C8449@freudenbergs.de"
 type="cite">
  <div>
  <div>On 22.08.2009, at 12:39, Trygve Reenskaug wrote:</div>
  <br class="Apple-interchange-newline">
  <blockquote type="cite"><span class="Apple-style-span"
 style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
    <div bgcolor="#ffffff" text="#000000"><i>Object&gt;&gt;asOop<br>
&nbsp;&nbsp;&nbsp; "Primitive. Answer a SmallInteger whose value is half of the
receiver's<span class="Apple-converted-space">&nbsp;</span><br>
&nbsp;&nbsp;&nbsp; object pointer (interpreting object pointers as 16-bit signed
quantities)..."</i><br>
    <br>
    <i>ProtoObject&gt;&gt;identityHash<br>
&nbsp;&nbsp;&nbsp; "Answer a SmallInteger whose value is related to the receiver's
identity..."<br>
    </i>This is pretty vague, but the term 'Hash' indicates that many
objects can share the same value. So it is clearly cannot be used as
the objectID.<br>
    <br>
The Morph&gt;&gt;printOn: implementation is less than ideal because it
should apply to all objects, not only Morphs. Also, it should use
'asOop' rather than 'identityHash' to let us hope for uniqueness.</div>
    </span></blockquote>
  <div><br>
  </div>
  <div>You might have overlooked that both these methods are identical.</div>
  </div>
</blockquote>
I do know it and interpret this to mean that the current Squeak VM
happens to have unique hash values. There is no guarantee that another
version of the VM will have this invariant.<br>
<blockquote
 cite="mid:D3064A4B-A094-41BD-9026-1885EE9C8449@freudenbergs.de"
 type="cite">
  <div><br>
  <blockquote type="cite"><span class="Apple-style-span"
 style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
    <div bgcolor="#ffffff" text="#000000">In short:<br>
    <ul>
      <li>Smalltalk claims to be object oriented and I regard it as a
serious flaw that the object ID is not explicitly visible.</li>
    </ul>
    </div>
    </span></blockquote>
  <div><br>
  </div>
  <div>What if there simply *is* no object ID?</div>
  </div>
</blockquote>
In Smalltalk, a value is a pointer to an object. Bluebook p. 564: "Each
object is associated with a unique identifier called its object
pointer. ..." <br>
Smalltalk MUST have such unique identifiers to work. I see this pointer
as the object's ID. I have seen from the discussion in this track that
the VM can actually change this "unique" pointer. <br>
<br>
IMO, a Smalltalk user/programmer should not need to understand the VM.
Alan Kay' once said something like "everything in computing is about
illusions". One such illusion is that the unique object identifier is
immutable. When debugging, I also find it useful that it shall be
possible to make it visible, but this is not essential for Smalltalk to
work.<br>
<blockquote
 cite="mid:D3064A4B-A094-41BD-9026-1885EE9C8449@freudenbergs.de"
 type="cite">
  <div><br>
  <blockquote type="cite"><span class="Apple-style-span"
 style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
    <div bgcolor="#ffffff" text="#000000">
    <ul>
      <li>We probably need a 64-bit VM to represent it properly, e.g.,
using the standardized definition of OID, but a value that is
guaranteed to be unique within the current set of objects would be
acceptable..</li>
    </ul>
    </div>
    </span></blockquote>
  <div><br>
  </div>
  <div>What is the "standardized definition of OID"?</div>
  </div>
</blockquote>
See the Wikipedia article <a
 href="http://en.wikipedia.org/wiki/Object_identifier">http://en.wikipedia.org/wiki/Object_identifier</a><br>
<br>
<br>
<blockquote
 cite="mid:D3064A4B-A094-41BD-9026-1885EE9C8449@freudenbergs.de"
 type="cite">
  <div>
  <div><br>
  </div>
  <blockquote type="cite"><span class="Apple-style-span"
 style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
    <div bgcolor="#ffffff" text="#000000">
    <ul>
      <li>I regard it as a bug that Object&gt;&gt;printOn: does not
present some kind of object ID.</li>
    </ul>
    </div>
    </span></blockquote>
  <div><br>
  </div>
Has never bothered me.</div>
</blockquote>
I tend to think and work in terms of objects and object structures.
Then I need it.<br>
<br>
<blockquote
 cite="mid:D3064A4B-A094-41BD-9026-1885EE9C8449@freudenbergs.de"
 type="cite"><br>
  <div> <span class="Apple-style-span"
 style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Lucida Grande; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;">
  <div style="">
  <div style="font-family: Helvetica;"><span class="Apple-style-span"
 style="font-family: Helvetica;">- Bert -</span></div>
  <br class="Apple-interchange-newline">
  </div>
  </span> </div>
  <br>
</blockquote>
--Trygve<br>
<div class="moz-signature">-- <br>
<meta http-equiv="Content-Type" content="text/html; ">
<meta name="ProgId" content="Word.Document">
<meta name="Generator" content="Microsoft Word 10">
<meta name="Originator" content="Microsoft Word 10">
<link rel="File-List" href="TrygveSignature-filer/filelist.xml">
<title>-- </title>
<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:HyphenationZone>21</w:HyphenationZone>
  <w:PunctuationKerning/>
  <w:DrawingGridHorizontalSpacing>6 pt</w:DrawingGridHorizontalSpacing>
  <w:DrawingGridVerticalSpacing>6 pt</w:DrawingGridVerticalSpacing>
  <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
  <w:DisplayVerticalDrawingGridEvery>3</w:DisplayVerticalDrawingGridEvery>
  <w:UseMarginsForDrawingGridOrigin/>
  <w:DoNotShadeFormData/>
  <w:Compatibility>
   <w:FootnoteLayoutLikeWW8/>
   <w:ShapeLayoutLikeWW8/>
   <w:AlignTablesRowByRow/>
   <w:ForgetLastTabAlignment/>
   <w:LayoutRawTableWidth/>
   <w:LayoutTableRowsApart/>
   <w:UseWord97LineBreakingRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-parent:"";
        margin:0cm;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
span.SpellE
        {mso-style-name:"";
        mso-spl-e:yes;}
span.GramE
        {mso-style-name:"";
        mso-gram-e:yes;}
 /* Page Definitions */
 @page
        {mso-page-border-surround-header:no;
        mso-page-border-surround-footer:no;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;
        mso-header-margin:35.4pt;
        mso-footer-margin:35.4pt;
        mso-paper-source:0;}
div.Section1
        {page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
        {mso-style-name:"Vanlig tabell";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="2050"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1"/>
 </o:shapelayout></xml><![endif]-->
<div class="Section1">
<p class="MsoNormal" style=""><span class="SpellE"><span
 style="font-size: 10pt; font-family: Arial;" lang="EN-GB">Trygve</span></span><span
 style="font-size: 10pt; font-family: Arial;" lang="EN-GB">
Reenskaug<span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>mailto: <span class="SpellE"><a
 class="moz-txt-link-abbreviated" href="mailto:trygver@ifi.uio.no">trygver@ifi.uio.no</a></span></span><span
 style="font-size: 10pt; font-family: Arial;"><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span class="SpellE"><span class="GramE"><span
 style="font-size: 10pt; font-family: Arial;" lang="EN-GB">Morgedalsvn</span></span></span><span
 class="GramE"><span style="font-size: 10pt; font-family: Arial;"
 lang="EN-GB">.</span></span><span
 style="font-size: 10pt; font-family: Arial;" lang="EN-GB"> 5A <span
 style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><a class="moz-txt-link-freetext"
 href="http://heim.ifi.uio.no/%7Etrygver">http://heim.ifi.uio.no/~trygver</a><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span
 style="font-size: 10pt; font-family: Arial;">N-0378
Oslo<span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Tel: (+47) 22 49 57 27<o:p></o:p></span></p>
<p class="MsoNormal" style=""><span class="SpellE"><span
 style="font-size: 10pt; font-family: Arial;">Norway</span></span><span
 style="font-size: 10pt; font-family: Arial;"><o:p></o:p></span></p>
</div>
</div>
</body>
</html>