On Sun, Sep 26, 2010 at 1:45 PM, stephane ducasse
<stephane.ducasse@gmail.com> wrote:
Eliot
I wanted to understand what: ' �Have various places check for isOopCOmpiledMethod:
rather than isCompiledMethod: to allow SmallIntegers to be used as methods.'
means
� � � �in which circumstances do we want to have smalltalkIntegers used as methods?
� � � �when we put an object instead of a compiled method and that by accident this is an integer?
Eliot, first of all, thanks A LOT!!!� This is really important for us....wiiii we have TestCoverage again :)
BTW, I think I found something related to what Stef says....In normal squeakVM :
testAddNumbers
��� self assert: (self add: 3 with: 4) = 7.
��� self assert: (self perform: #add:with: withArguments: #(3 4)) = 7.
this is ok, since (self perform: #add:with: withArguments: #(3 4))� answers 7.
But with this new CogVM, there is a primitiveError.
so...we can update the test to:
��� self should: (self perform: #add:with: withArguments: #(3 4)) rise: Error.
or something like that....but this test will fail with normal VM..
what we should do?
thanks
mariano
�
Stef
>
>
> Name: VMMaker-oscog.33
> Author: eem
> Time: 25 September 2010, 7:13:51 am
> UUID: 733b7c50-b973-4ca0-9831-5c84d09032bf
> Ancestors: VMMaker-oscog.32
>
> OSCogVM:
> �Support object-as-method:
> � � � Eagerly evaluate the interpreter version of a primitive
> � � � to ease the object-as-method implementation and to
> � � � improve interpreter performance.
> � � � Refuse to enter anything that isn't a CompiledMethod
> � � � into the method-lookup cache to avoid open PICs having
> � � � to check for valid compiled methods.
> � � � Have various places check for isOopCOmpiledMethod:
> � � � rather than isCompiledMethod: to allow SmallIntegers to
> � � � be used as methods.
> Interpreter:
> � � � Have various places check for isOopCOmpiledMethod:
> � � � rather than isCompiledMethod: to allow SmallIntegers to
> � � � be used as methods.
> Slang:
> � � � support super sends by expanding them at translation
> � � � time. �This allows CoInterpreter>>addMethodToCache
> � � � to avoid cacheing non-compiled methods via a super
> � � � send, avoiding duplicating SrackInterpreter's method.
>