Re: [Vm-dev] VM Maker: VMMaker-oscog.33.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] VM Maker: VMMaker-oscog.33.mcz

Eliot Miranda-2
I would appreciate anyone interested in objects-as-methods on Cog pounding on the latest Cog VMs (http://www.mirandabanda.org/files/Cog/VM/VM.r2313/) as this involved substantial changes to method lookup/inline cacheing machinery and there could easily be bugs.  The tests run, but they're insubstantial compared e.g. to a full coverage test.

best
Eliot

(repeat with fixed email address: squeakfountation => squeakfoundation)

On Sat, Sep 25, 2010 at 9:20 PM, <[hidden email]> wrote:

Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://www.squeaksource.com/VMMaker/VMMaker-oscog.33.mcz

==================== Summary ====================

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.




Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] VM Maker: VMMaker-oscog.33.mcz

Nicolas Cellier
Hi Eliot,
I noticed that some tests fail (with errors) when run under coverage
with COG, while they succeed otherwise.
In regular VM, no error whether coverage test or regular tests...
An example is from

MCHttpRepository
        location: 'http://www.squeaksource.com/XTream'
        user: ''
        password: ''

packages XTream-Core / XTream-CharacterCode /
XTream-TextConverterCompatibility (optionnal) / XTream XTream-Tests

Nicolas

2010/9/26 Eliot Miranda <[hidden email]>:

> I would appreciate anyone interested in objects-as-methods on Cog pounding
> on the latest Cog VMs (http://www.mirandabanda.org/files/Cog/VM/VM.r2313/)
> as this involved substantial changes to method lookup/inline cacheing
> machinery and there could easily be bugs.  The tests run, but they're
> insubstantial compared e.g. to a full coverage test.
>
> best
> Eliot
> (repeat with fixed email address: squeakfountation => squeakfoundation)
> On Sat, Sep 25, 2010 at 9:20 PM,
> <[hidden email]> wrote:
>>
>> Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
>> http://www.squeaksource.com/VMMaker/VMMaker-oscog.33.mcz
>>
>> ==================== Summary ====================
>>
>> 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.
>>
>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] VM Maker: VMMaker-oscog.33.mcz

Mariano Martinez Peck


On Mon, Sep 27, 2010 at 8:38 PM, Nicolas Cellier <[hidden email]> wrote:
Hi Eliot,
I noticed that some tests fail (with errors) when run under coverage
with COG, while they succeed otherwise.
In regular VM, no error whether coverage test or regular tests...
An example is from

MCHttpRepository
       location: 'http://www.squeaksource.com/XTream'
       user: ''
       password: ''

packages XTream-Core / XTream-CharacterCode /
XTream-TextConverterCompatibility (optionnal) / XTream XTream-Tests


Nicolas, the problem of the TestCoverage is because it uses method wrappers using "Objects as methods"...this is, using the run:with:with which was not originally supported in Cog.
However, in this latest VM, Eliot has implement it. So...you need latest CogVM to run Coverage or any run:with:with.

Binary is http://www.mirandabanda.org/files/Cog/VM/VM.r2313/

you are using THAT VM and have problems ?

The only one I found in Pharo is using the one I already reported in this email.

Cheers

Mariano
 
Nicolas

2010/9/26 Eliot Miranda <[hidden email]>:
> I would appreciate anyone interested in objects-as-methods on Cog pounding
> on the latest Cog VMs (http://www.mirandabanda.org/files/Cog/VM/VM.r2313/)
> as this involved substantial changes to method lookup/inline cacheing
> machinery and there could easily be bugs.  The tests run, but they're
> insubstantial compared e.g. to a full coverage test.
>
> best
> Eliot
> (repeat with fixed email address: squeakfountation => squeakfoundation)
> On Sat, Sep 25, 2010 at 9:20 PM,
> <[hidden email]> wrote:
>>
>> Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
>> http://www.squeaksource.com/VMMaker/VMMaker-oscog.33.mcz
>>
>> ==================== Summary ====================
>>
>> 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.
>>
>
>
>
>
>




Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] VM Maker: VMMaker-oscog.33.mcz

Nicolas Cellier
2010/9/27 Mariano Martinez Peck <[hidden email]>:

>
>
> On Mon, Sep 27, 2010 at 8:38 PM, Nicolas Cellier
> <[hidden email]> wrote:
>>
>> Hi Eliot,
>> I noticed that some tests fail (with errors) when run under coverage
>> with COG, while they succeed otherwise.
>> In regular VM, no error whether coverage test or regular tests...
>> An example is from
>>
>> MCHttpRepository
>>        location: 'http://www.squeaksource.com/XTream'
>>        user: ''
>>        password: ''
>>
>> packages XTream-Core / XTream-CharacterCode /
>> XTream-TextConverterCompatibility (optionnal) / XTream XTream-Tests
>>
>
> Nicolas, the problem of the TestCoverage is because it uses method wrappers
> using "Objects as methods"...this is, using the run:with:with which was not
> originally supported in Cog.
> However, in this latest VM, Eliot has implement it. So...you need latest
> CogVM to run Coverage or any run:with:with.
>

Oh yes, sure, home compiled oscog.33, otherwise older versions would
simply crash.

Nicolas


> Binary is http://www.mirandabanda.org/files/Cog/VM/VM.r2313/
>
> you are using THAT VM and have problems ?
>
> The only one I found in Pharo is using the one I already reported in this
> email.
>
> Cheers
>
> Mariano
>
>>
>> Nicolas
>>
>> 2010/9/26 Eliot Miranda <[hidden email]>:
>> > I would appreciate anyone interested in objects-as-methods on Cog
>> > pounding
>> > on the latest Cog VMs
>> > (http://www.mirandabanda.org/files/Cog/VM/VM.r2313/)
>> > as this involved substantial changes to method lookup/inline cacheing
>> > machinery and there could easily be bugs.  The tests run, but they're
>> > insubstantial compared e.g. to a full coverage test.
>> >
>> > best
>> > Eliot
>> > (repeat with fixed email address: squeakfountation => squeakfoundation)
>> > On Sat, Sep 25, 2010 at 9:20 PM,
>> > <[hidden email]> wrote:
>> >>
>> >> Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
>> >> http://www.squeaksource.com/VMMaker/VMMaker-oscog.33.mcz
>> >>
>> >> ==================== Summary ====================
>> >>
>> >> 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.
>> >>
>> >
>> >
>> >
>> >
>> >
>>
>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] VM Maker: VMMaker-oscog.33.mcz

Eliot Miranda-2
In reply to this post by Mariano Martinez Peck


On Mon, Sep 27, 2010 at 12:15 PM, Mariano Martinez Peck <[hidden email]> wrote:


On Mon, Sep 27, 2010 at 8:38 PM, Nicolas Cellier <[hidden email]> wrote:
Hi Eliot,
I noticed that some tests fail (with errors) when run under coverage
with COG, while they succeed otherwise.
In regular VM, no error whether coverage test or regular tests...
An example is from

MCHttpRepository
       location: 'http://www.squeaksource.com/XTream'
       user: ''
       password: ''

packages XTream-Core / XTream-CharacterCode /
XTream-TextConverterCompatibility (optionnal) / XTream XTream-Tests


Nicolas, the problem of the TestCoverage is because it uses method wrappers using "Objects as methods"...this is, using the run:with:with which was not originally supported in Cog.
However, in this latest VM, Eliot has implement it. So...you need latest CogVM to run Coverage or any run:with:with.

Binary is http://www.mirandabanda.org/files/Cog/VM/VM.r2313/

you are using THAT VM and have problems ?

Yes.  Nicolas knows what he's doing.  There's a bug in my coding of primitiveObject:perform:withArguments:lookedUpIn: which is causing perform:withArguments: to fail if the target is an object-as-method.  I have a fix, but want to make some other changes as well, so you'll have to wait for a while :)
 

The only one I found in Pharo is using the one I already reported in this email.

Cheers

Mariano
 
Nicolas

2010/9/26 Eliot Miranda <[hidden email]>:
> I would appreciate anyone interested in objects-as-methods on Cog pounding
> on the latest Cog VMs (http://www.mirandabanda.org/files/Cog/VM/VM.r2313/)
> as this involved substantial changes to method lookup/inline cacheing
> machinery and there could easily be bugs.  The tests run, but they're
> insubstantial compared e.g. to a full coverage test.
>
> best
> Eliot
> (repeat with fixed email address: squeakfountation => squeakfoundation)
> On Sat, Sep 25, 2010 at 9:20 PM,
> <[hidden email]> wrote:
>>
>> Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
>> http://www.squeaksource.com/VMMaker/VMMaker-oscog.33.mcz
>>
>> ==================== Summary ====================
>>
>> 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.
>>
>
>
>
>
>








Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] VM Maker: VMMaker-oscog.33.mcz

Eliot Miranda-2
In reply to this post by Nicolas Cellier
Nicolas,

    thanks for this.  If possible can you localise this to uses of perform:?  Yesterday I noticed that there's a bug in my coding of primitiveObject:perform:withArguments:lookedUpIn: that breaks for object-as-method targets.  That would be great if it were the only bug.

On Mon, Sep 27, 2010 at 12:53 PM, Nicolas Cellier <[hidden email]> wrote:
2010/9/27 Mariano Martinez Peck <[hidden email]>:
>
>
> On Mon, Sep 27, 2010 at 8:38 PM, Nicolas Cellier
> <[hidden email]> wrote:
>>
>> Hi Eliot,
>> I noticed that some tests fail (with errors) when run under coverage
>> with COG, while they succeed otherwise.
>> In regular VM, no error whether coverage test or regular tests...
>> An example is from
>>
>> MCHttpRepository
>>        location: 'http://www.squeaksource.com/XTream'
>>        user: ''
>>        password: ''
>>
>> packages XTream-Core / XTream-CharacterCode /
>> XTream-TextConverterCompatibility (optionnal) / XTream XTream-Tests
>>
>
> Nicolas, the problem of the TestCoverage is because it uses method wrappers
> using "Objects as methods"...this is, using the run:with:with which was not
> originally supported in Cog.
> However, in this latest VM, Eliot has implement it. So...you need latest
> CogVM to run Coverage or any run:with:with.
>

Oh yes, sure, home compiled oscog.33, otherwise older versions would
simply crash.

Nicolas


> Binary is http://www.mirandabanda.org/files/Cog/VM/VM.r2313/
>
> you are using THAT VM and have problems ?
>
> The only one I found in Pharo is using the one I already reported in this
> email.
>
> Cheers
>
> Mariano
>
>>
>> Nicolas
>>
>> 2010/9/26 Eliot Miranda <[hidden email]>:
>> > I would appreciate anyone interested in objects-as-methods on Cog
>> > pounding
>> > on the latest Cog VMs
>> > (http://www.mirandabanda.org/files/Cog/VM/VM.r2313/)
>> > as this involved substantial changes to method lookup/inline cacheing
>> > machinery and there could easily be bugs.  The tests run, but they're
>> > insubstantial compared e.g. to a full coverage test.
>> >
>> > best
>> > Eliot
>> > (repeat with fixed email address: squeakfountation => squeakfoundation)
>> > On Sat, Sep 25, 2010 at 9:20 PM,
>> > <[hidden email]> wrote:
>> >>
>> >> Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
>> >> http://www.squeaksource.com/VMMaker/VMMaker-oscog.33.mcz
>> >>
>> >> ==================== Summary ====================
>> >>
>> >> 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.
>> >>
>> >
>> >
>> >
>> >
>> >
>>
>
>
>
>
>