<br><br><div class="gmail_quote">On Sun, Sep 26, 2010 at 1:45 PM, stephane ducasse <span dir="ltr">&lt;<a href="mailto:stephane.ducasse@gmail.com">stephane.ducasse@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Eliot<br>
<br>
I wanted to understand what: &#39;  Have various places check for isOopCOmpiledMethod:<br>
rather than isCompiledMethod: to allow SmallIntegers to be used as methods.&#39;<br>
means<br>
        in which circumstances do we want to have smalltalkIntegers used as methods?<br>
        when we put an object instead of a compiled method and that by accident this is an integer?<br>
<br></blockquote><div><br><br>Eliot, first of all, thanks A LOT!!!  This is really important for us....wiiii we have TestCoverage again :)<br><br>BTW, I think I found something related to what Stef says....In normal squeakVM :<br>
<br>testAddNumbers<br>    self assert: (self add: 3 with: 4) = 7.<br>    self assert: (self perform: #add:with: withArguments: #(3 4)) = 7.<br><br>this is ok, since (self perform: #add:with: withArguments: #(3 4))  answers 7.<br>
But with this new CogVM, there is a primitiveError.<br><br>so...we can update the test to:<br><br>    self should: (self perform: #add:with: withArguments: #(3 4)) rise: Error.<br>
<br>or something like that....but this test will fail with normal VM..<br><br>what we should do?<br><br>thanks<br><br>mariano<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

Stef<br>
<div><div></div><div class="h5"><br>
<br>
&gt;<br>
&gt;<br>
&gt; Name: VMMaker-oscog.33<br>
&gt; Author: eem<br>
&gt; Time: 25 September 2010, 7:13:51 am<br>
&gt; UUID: 733b7c50-b973-4ca0-9831-5c84d09032bf<br>
&gt; Ancestors: VMMaker-oscog.32<br>
&gt;<br>
&gt; OSCogVM:<br>
&gt;  Support object-as-method:<br>
&gt;       Eagerly evaluate the interpreter version of a primitive<br>
&gt;       to ease the object-as-method implementation and to<br>
&gt;       improve interpreter performance.<br>
&gt;       Refuse to enter anything that isn&#39;t a CompiledMethod<br>
&gt;       into the method-lookup cache to avoid open PICs having<br>
&gt;       to check for valid compiled methods.<br>
&gt;       Have various places check for isOopCOmpiledMethod:<br>
&gt;       rather than isCompiledMethod: to allow SmallIntegers to<br>
&gt;       be used as methods.<br>
&gt; Interpreter:<br>
&gt;       Have various places check for isOopCOmpiledMethod:<br>
&gt;       rather than isCompiledMethod: to allow SmallIntegers to<br>
&gt;       be used as methods.<br>
&gt; Slang:<br>
&gt;       support super sends by expanding them at translation<br>
&gt;       time.  This allows CoInterpreter&gt;&gt;addMethodToCache<br>
&gt;       to avoid cacheing non-compiled methods via a super<br>
&gt;       send, avoiding duplicating SrackInterpreter&#39;s method.<br>
&gt;<br>
<br>
</div></div></blockquote></div><br>