Re: [Pharo-project] [Vm-dev] VM Maker: VMMaker-oscog.33.mcz
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.
participants (1)
-
Mariano Martinez Peck