<div dir="ltr"><div class="gmail_quote"><div>Hi Christoph, </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div id="m_-8378222150661093537gmail-m_-4771741952269926656divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr"><p><span style="font-size:12pt">I am not sure whether we can (or should) make the default inspector proxy-safe. Rather, IMHO the default inspectors should handle proxies transparently and display the underlying object.</span><br></p></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div id="m_-8378222150661093537gmail-m_-4771741952269926656divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr"><p><span style="font-size:12pt">For inspecting the implementation details of proxies, we have the BasicInspector,
 which is almost completely proxy-safe (the only exception I am aware of is a send to #isReadOnlyObject for the window label, for which we currently do not have a mirror primitive).</span></p></div></div></blockquote><div>Yes, in principle, it's impossible to argue against that.  "Backward-compatibility" for Magma is all I've got. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div id="m_-8378222150661093537gmail-m_-4771741952269926656divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr"><p><span style="font-size:12pt">> </span><span style="font-size:12pt">#size is a provoking message.</span><br></p>
<p><span style="font-size:12pt">And #printString, #</span><span style="font-size:12pt">longPrintString, #perform:, #instVarNamed:, #basicSize, and all others existing sends are not? :-)</span></p></div></div></blockquote><div>They are, but not invoked until you interact with the Inspector.  Putting the #size in the title bar changes that behavior.<br></div><div><br></div><div>Also, it may be presumptuous to assume the collection being inspected is a SmalltalkCollection.  CollectionInspector is used for Magma's large MagmaCollections, which require a db access to retrieve the size..</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div id="m_-8378222150661093537gmail-m_-4771741952269926656divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr"><p><span style="font-size:12pt">> </span><span style="font-size:12pt">Magma's Proxy's anyway (which don't use the mirror-primitives but the old-school Proxy pattern)</span></p>
<p>Just out of interest, how would you implement a proxy using mirror primitives? :-)</p></div></div></blockquote><div>I'm not sure, but Eliot says it's the way Proxy's are supposed to be done in Squeak so that ProtoObject can have no methods.</div><div><br></div><div>Unfortunately, it would require rewriting a lot of low-level methods like Symbol>>#=  to be (to my knowledge) non-standard Smalltalk which, realistically, is not ever going to be done, and therefore I'm doubtful the dream of "transparent proxies" will ever, uh, materialize (no pun intended!  :)  ), which is unfortunate because that "dream" continues to be a Magma-killer (slowly by a thousand cuts).  Magma's Proxy's have worked well-enough for *applications* for many years, but lately developers seem to want "clean", "transparent" proxies and so even the standard old-school Gang-of-Four Proxy pattern remains broken since 5.3.</div><div><br></div><div>I hope I'm missing something and completely wrong about the above, but I don't think I am.  I admit I haven't had the time or inclination to try to re-inventing Magma's proxy system just to accommodate some abstract notions of purity.  I'm concerned with application of computer code to external, real-world purposes.</div><div><br></div><div> - Chris</div></div></div>