<div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Apr 18, 2020 at 10:31 AM Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div id="gmail-m_8693995806049905862divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<p></p>
<div>class := Object newSubclass.</div>
<p></p>
<p></p>
<div>class addSelector: #foo: withMethod: (</div>
<p></p>
<p></p>
<div><span style="white-space:pre-wrap"></span>[:x | x squared * 2] method as: CompiledMethod).</div>
<p></p>
<p></p>
<div>class new foo: 3. "18"</div></blockquote>
<p>And you can even debug it :D</p>
<p><img size="1857" id="gmail-m_8693995806049905862img747746" style="max-width: 99.9%;" src="cid:1718ead4671f456b1e51"><br></p>
<p>This one is really crazy</p>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<p></p>
<div></div>
<p></p>
<div>class := Object newUniqueClassInstVars: 'state' classInstVars: ''.</div>
<div>class addSelector: #foo withMethod: (</div>
<div><span style="white-space:pre-wrap"></span>[:x | gate] method as: CompiledMethod).</div>
<div>class new foo "-1.2045729113346377e-38"</div></blockquote>
<p>What the ...? Am I accessing any private method literals here?</p></div></div></blockquote><div><br></div><div style="color:rgb(0,0,0)">This may be a return address.  If you ran this in the simulator you'd be able to see.  Also try running it on the StackInterpreter and see what you get.</div><div style="color:rgb(0,0,0)"> </div><blockquote class="gmail_quote" style="color:rgb(0,0,0);margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div id="gmail-m_8693995806049905862divtagdefaultwrapper" dir="ltr" style="font-size:12pt;font-family:Calibri,Helvetica,sans-serif"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><p></p><div></div><p></p></blockquote></div></div></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div id="gmail-m_8693995806049905862divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p><span style="font-size:12pt">Then we only need a mechanism that translates the #pushRcvr: bytecodes to another class.</span><br></p></div></div></blockquote><div><br></div><div>I don't see you jumping to the metacircular interpreter in the above.  What do you mean by "translates the #pushRcvr: bytecodes to another class"?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div id="gmail-m_8693995806049905862divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p><span style="font-size:12pt">Best,</span><br></p>
<p>Christoph</p></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div></div></div>