<br><br><div class="gmail_quote">On Sun, Sep 26, 2010 at 1:45 PM, stephane ducasse <span dir="ltr"><<a href="mailto:stephane.ducasse@gmail.com">stephane.ducasse@gmail.com</a>></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: ' Have various places check for isOopCOmpiledMethod:<br>
rather than isCompiledMethod: to allow SmallIntegers to be used as methods.'<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>
><br>
><br>
> Name: VMMaker-oscog.33<br>
> Author: eem<br>
> Time: 25 September 2010, 7:13:51 am<br>
> UUID: 733b7c50-b973-4ca0-9831-5c84d09032bf<br>
> Ancestors: VMMaker-oscog.32<br>
><br>
> OSCogVM:<br>
> Support object-as-method:<br>
> Eagerly evaluate the interpreter version of a primitive<br>
> to ease the object-as-method implementation and to<br>
> improve interpreter performance.<br>
> Refuse to enter anything that isn't a CompiledMethod<br>
> into the method-lookup cache to avoid open PICs having<br>
> to check for valid compiled methods.<br>
> Have various places check for isOopCOmpiledMethod:<br>
> rather than isCompiledMethod: to allow SmallIntegers to<br>
> be used as methods.<br>
> Interpreter:<br>
> Have various places check for isOopCOmpiledMethod:<br>
> rather than isCompiledMethod: to allow SmallIntegers to<br>
> be used as methods.<br>
> Slang:<br>
> support super sends by expanding them at translation<br>
> time. This allows CoInterpreter>>addMethodToCache<br>
> to avoid cacheing non-compiled methods via a super<br>
> send, avoiding duplicating SrackInterpreter's method.<br>
><br>
<br>
</div></div></blockquote></div><br>