New Cog VMs available

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

New Cog VMs available

Eliot Miranda-2
... at http://www.mirandabanda.org/files/Cog/VM/VM.r3308/.

CogVM binaries as per VMMaker.oscog-eem.1178/r3308

Plugins:
Integrate Nicolas' fixes that use positiveMachineIntegerFor: for pointers.

Newspeak:
Print a warning in the method shared under multiple selectors scenario.

Implement outer sends as clean sends just like implicit receiver sends. Add
ObjectRepresentation>>illegalClassTag and use it for initializing and unlinking
implicit and outer sends.

Newspeak & Sista:
The multiple bytecode set block initial nil counters need
to be specific to the bytecode set in effect.

Spur:
Implement Clement's much better solution for the stale supersend problem.
Place code at the send site for super sends to follow stale forwarded
receivers.  This parallels the interpreter implementation.

Beef up the post-become scan of send sites to
unlink all send sites that link to an invalid class tag.

Cogit:
Optimize StackToRegisterMappingCogit>>genReturnReceiver
to not load ReceiverResultReg if it already contains self.

Revise method map generation to provide multiple send type annotations.  Add
an IsAnnotationExtension annotation type that implicitly has a zero displacement
and uses its displacement bits to extend the preceeding IsSendCall annotation.
This allows us to eliminate all the exotic entry-points and keep only the
checked and unchecked entries.

Change IA32's genPushRegisterArgsForNumArgs: to not smash TempReg now that it
is used in directed super send trampolines.

Use PushCq to pass small integer constants in the trampolines instead of
smashing TempReg, which is now used to hold the directed supersend argument.
Add support for PushCq.  Could use PushCw but on x86 PushCq is a lot shorter.

Mac builds: Use UTC as the timezone for the build timestamp.  Using the local
timezone doesn't work :(.
-- 
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: New Cog VMs available

Tobias Pape
Updated on the CI :)

Best
        -Tobias
On 09.04.2015, at 23:28, Eliot Miranda <[hidden email]> wrote:

> ... at http://www.mirandabanda.org/files/Cog/VM/VM.r3308/.
>
> CogVM binaries as per VMMaker.oscog-eem.1178/r3308
>
> Plugins:
> Integrate Nicolas' fixes that use positiveMachineIntegerFor: for pointers.
>
> Newspeak:
> Print a warning in the method shared under multiple selectors scenario.
>
> Implement outer sends as clean sends just like implicit receiver sends. Add
> ObjectRepresentation>>illegalClassTag and use it for initializing and unlinking
> implicit and outer sends.
>
> Newspeak & Sista:
> The multiple bytecode set block initial nil counters need
> to be specific to the bytecode set in effect.
>
> Spur:
> Implement Clement's much better solution for the stale supersend problem.
> Place code at the send site for super sends to follow stale forwarded
> receivers.  This parallels the interpreter implementation.
>
> Beef up the post-become scan of send sites to
> unlink all send sites that link to an invalid class tag.
>
> Cogit:
> Optimize StackToRegisterMappingCogit>>genReturnReceiver
> to not load ReceiverResultReg if it already contains self.
>
> Revise method map generation to provide multiple send type annotations.  Add
> an IsAnnotationExtension annotation type that implicitly has a zero displacement
> and uses its displacement bits to extend the preceeding IsSendCall annotation.
> This allows us to eliminate all the exotic entry-points and keep only the
> checked and unchecked entries.
>
> Change IA32's genPushRegisterArgsForNumArgs: to not smash TempReg now that it
> is used in directed super send trampolines.
>
> Use PushCq to pass small integer constants in the trampolines instead of
> smashing TempReg, which is now used to hold the directed supersend argument.
> Add support for PushCq.  Could use PushCw but on x86 PushCq is a lot shorter.
>
> Mac builds: Use UTC as the timezone for the build timestamp.  Using the local
> timezone doesn't work :(.




Reply | Threaded
Open this post in threaded view
|

Re: New Cog VMs available

Tobias Pape

On 10.04.2015, at 00:17, Tobias Pape <[hidden email]> wrote:

> Updated on the CI :)
>

aaand reverted. We got a crash:
        http://build.squeak.org/job/SqueakTrunk/1245/console

Best
        -Tobias

> Best
> -Tobias
> On 09.04.2015, at 23:28, Eliot Miranda <[hidden email]> wrote:
>
>> ... at http://www.mirandabanda.org/files/Cog/VM/VM.r3308/.
>>
>> CogVM binaries as per VMMaker.oscog-eem.1178/r3308
>>
>> Plugins:
>> Integrate Nicolas' fixes that use positiveMachineIntegerFor: for pointers.
>>
>> Newspeak:
>> Print a warning in the method shared under multiple selectors scenario.
>>
>> Implement outer sends as clean sends just like implicit receiver sends. Add
>> ObjectRepresentation>>illegalClassTag and use it for initializing and unlinking
>> implicit and outer sends.
>>
>> Newspeak & Sista:
>> The multiple bytecode set block initial nil counters need
>> to be specific to the bytecode set in effect.
>>
>> Spur:
>> Implement Clement's much better solution for the stale supersend problem.
>> Place code at the send site for super sends to follow stale forwarded
>> receivers.  This parallels the interpreter implementation.
>>
>> Beef up the post-become scan of send sites to
>> unlink all send sites that link to an invalid class tag.
>>
>> Cogit:
>> Optimize StackToRegisterMappingCogit>>genReturnReceiver
>> to not load ReceiverResultReg if it already contains self.
>>
>> Revise method map generation to provide multiple send type annotations.  Add
>> an IsAnnotationExtension annotation type that implicitly has a zero displacement
>> and uses its displacement bits to extend the preceeding IsSendCall annotation.
>> This allows us to eliminate all the exotic entry-points and keep only the
>> checked and unchecked entries.
>>
>> Change IA32's genPushRegisterArgsForNumArgs: to not smash TempReg now that it
>> is used in directed super send trampolines.
>>
>> Use PushCq to pass small integer constants in the trampolines instead of
>> smashing TempReg, which is now used to hold the directed supersend argument.
>> Add support for PushCq.  Could use PushCw but on x86 PushCq is a lot shorter.
>>
>> Mac builds: Use UTC as the timezone for the build timestamp.  Using the local
>> timezone doesn't work :(.



Reply | Threaded
Open this post in threaded view
|

Re: New Cog VMs available

Eliot Miranda-2



On Apr 9, 2015, at 3:21 PM, Tobias Pape <[hidden email]> wrote:

>
> On 10.04.2015, at 00:17, Tobias Pape <[hidden email]> wrote:
>
>> Updated on the CI :)
>
> aaand reverted. We got a crash:
>    http://build.squeak.org/job/SqueakTrunk/1245/console

Yes.  I get a crash in updating with the v3 VM.  So far no problems with the Spur VM.  But Tibias, unless the bleeding edge gets tested how will I spit these regressions?  I need to know.  So can we not have two builds, one with the last known good and one with the bleeding edge?  Otherwise I'm flying blind.

>
> Best
>    -Tobias
>
>> Best
>>    -Tobias
>> On 09.04.2015, at 23:28, Eliot Miranda <[hidden email]> wrote:
>>
>>> ... at http://www.mirandabanda.org/files/Cog/VM/VM.r3308/.
>>>
>>> CogVM binaries as per VMMaker.oscog-eem.1178/r3308
>>>
>>> Plugins:
>>> Integrate Nicolas' fixes that use positiveMachineIntegerFor: for pointers.
>>>
>>> Newspeak:
>>> Print a warning in the method shared under multiple selectors scenario.
>>>
>>> Implement outer sends as clean sends just like implicit receiver sends. Add
>>> ObjectRepresentation>>illegalClassTag and use it for initializing and unlinking
>>> implicit and outer sends.
>>>
>>> Newspeak & Sista:
>>> The multiple bytecode set block initial nil counters need
>>> to be specific to the bytecode set in effect.
>>>
>>> Spur:
>>> Implement Clement's much better solution for the stale supersend problem.
>>> Place code at the send site for super sends to follow stale forwarded
>>> receivers.  This parallels the interpreter implementation.
>>>
>>> Beef up the post-become scan of send sites to
>>> unlink all send sites that link to an invalid class tag.
>>>
>>> Cogit:
>>> Optimize StackToRegisterMappingCogit>>genReturnReceiver
>>> to not load ReceiverResultReg if it already contains self.
>>>
>>> Revise method map generation to provide multiple send type annotations.  Add
>>> an IsAnnotationExtension annotation type that implicitly has a zero displacement
>>> and uses its displacement bits to extend the preceeding IsSendCall annotation.
>>> This allows us to eliminate all the exotic entry-points and keep only the
>>> checked and unchecked entries.
>>>
>>> Change IA32's genPushRegisterArgsForNumArgs: to not smash TempReg now that it
>>> is used in directed super send trampolines.
>>>
>>> Use PushCq to pass small integer constants in the trampolines instead of
>>> smashing TempReg, which is now used to hold the directed supersend argument.
>>> Add support for PushCq.  Could use PushCw but on x86 PushCq is a lot shorter.
>>>
>>> Mac builds: Use UTC as the timezone for the build timestamp.  Using the local
>>> timezone doesn't work :(.
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: New Cog VMs available

Tobias Pape
Hi Eliot,

On 10.04.2015, at 15:46, Eliot Miranda <[hidden email]> wrote:

>
>
>
> On Apr 9, 2015, at 3:21 PM, Tobias Pape <[hidden email]> wrote:
>
>>
>> On 10.04.2015, at 00:17, Tobias Pape <[hidden email]> wrote:
>>
>>> Updated on the CI :)
>>
>> aaand reverted. We got a crash:
>>   http://build.squeak.org/job/SqueakTrunk/1245/console
>


> Yes.  I get a crash in updating with the v3 VM.  So far no problems with the Spur VM.  But Tibias, unless the bleeding edge gets tested how will I spit these regressions?  I need to know.  So can we not have two builds, one with the last known good and one with the bleeding edge?

Sure, this is possible.
probably something like a matrix build.
Frank is more savvy with the infrastructure, tho.

best
        -Tobias


>  Otherwise I'm flying blind.
>
>>
>> Best
>>   -Tobias
>>
>>> Best
>>>   -Tobias
>>> On 09.04.2015, at 23:28, Eliot Miranda <[hidden email]> wrote:
>>>
>>>> ... at http://www.mirandabanda.org/files/Cog/VM/VM.r3308/.
>>>>
>>>> CogVM binaries as per VMMaker.oscog-eem.1178/r3308
>>>>
>>>> Plugins:
>>>> Integrate Nicolas' fixes that use positiveMachineIntegerFor: for pointers.
>>>>
>>>> Newspeak:
>>>> Print a warning in the method shared under multiple selectors scenario.
>>>>
>>>> Implement outer sends as clean sends just like implicit receiver sends. Add
>>>> ObjectRepresentation>>illegalClassTag and use it for initializing and unlinking
>>>> implicit and outer sends.
>>>>
>>>> Newspeak & Sista:
>>>> The multiple bytecode set block initial nil counters need
>>>> to be specific to the bytecode set in effect.
>>>>
>>>> Spur:
>>>> Implement Clement's much better solution for the stale supersend problem.
>>>> Place code at the send site for super sends to follow stale forwarded
>>>> receivers.  This parallels the interpreter implementation.
>>>>
>>>> Beef up the post-become scan of send sites to
>>>> unlink all send sites that link to an invalid class tag.
>>>>
>>>> Cogit:
>>>> Optimize StackToRegisterMappingCogit>>genReturnReceiver
>>>> to not load ReceiverResultReg if it already contains self.
>>>>
>>>> Revise method map generation to provide multiple send type annotations.  Add
>>>> an IsAnnotationExtension annotation type that implicitly has a zero displacement
>>>> and uses its displacement bits to extend the preceeding IsSendCall annotation.
>>>> This allows us to eliminate all the exotic entry-points and keep only the
>>>> checked and unchecked entries.
>>>>
>>>> Change IA32's genPushRegisterArgsForNumArgs: to not smash TempReg now that it
>>>> is used in directed super send trampolines.
>>>>
>>>> Use PushCq to pass small integer constants in the trampolines instead of
>>>> smashing TempReg, which is now used to hold the directed supersend argument.
>>>> Add support for PushCq.  Could use PushCw but on x86 PushCq is a lot shorter.
>>>>
>>>> Mac builds: Use UTC as the timezone for the build timestamp.  Using the local
>>>> timezone doesn't work :(.



Reply | Threaded
Open this post in threaded view
|

Re: New Cog VMs available

Frank Shearar-3
On 10 April 2015 at 16:21, Tobias Pape <[hidden email]> wrote:

> Hi Eliot,
>
> On 10.04.2015, at 15:46, Eliot Miranda <[hidden email]> wrote:
>
>>
>>
>>
>> On Apr 9, 2015, at 3:21 PM, Tobias Pape <[hidden email]> wrote:
>>
>>>
>>> On 10.04.2015, at 00:17, Tobias Pape <[hidden email]> wrote:
>>>
>>>> Updated on the CI :)
>>>
>>> aaand reverted. We got a crash:
>>>   http://build.squeak.org/job/SqueakTrunk/1245/console
>>
>
>
>> Yes.  I get a crash in updating with the v3 VM.  So far no problems with the Spur VM.  But Tibias, unless the bleeding edge gets tested how will I spit these regressions?  I need to know.  So can we not have two builds, one with the last known good and one with the bleeding edge?
>
> Sure, this is possible.
> probably something like a matrix build.
> Frank is more savvy with the infrastructure, tho.

I'd say that SqueakTrunk should use the latest stable Cog - its main
purpose is to test _trunk's_ bleeding edge. We do also have
SqueakTrunkOnSpur, which should track Spur's/Cog's bleeding edge.

Which means we should split the versions in the build scripts. Maybe
we should just have a COG_VERSION and a SPUR_COG_VERSION as a
not-too-stinky quick win?

frank

> best
>         -Tobias
>
>
>>  Otherwise I'm flying blind.
>>
>>>
>>> Best
>>>   -Tobias
>>>
>>>> Best
>>>>   -Tobias
>>>> On 09.04.2015, at 23:28, Eliot Miranda <[hidden email]> wrote:
>>>>
>>>>> ... at http://www.mirandabanda.org/files/Cog/VM/VM.r3308/.
>>>>>
>>>>> CogVM binaries as per VMMaker.oscog-eem.1178/r3308
>>>>>
>>>>> Plugins:
>>>>> Integrate Nicolas' fixes that use positiveMachineIntegerFor: for pointers.
>>>>>
>>>>> Newspeak:
>>>>> Print a warning in the method shared under multiple selectors scenario.
>>>>>
>>>>> Implement outer sends as clean sends just like implicit receiver sends. Add
>>>>> ObjectRepresentation>>illegalClassTag and use it for initializing and unlinking
>>>>> implicit and outer sends.
>>>>>
>>>>> Newspeak & Sista:
>>>>> The multiple bytecode set block initial nil counters need
>>>>> to be specific to the bytecode set in effect.
>>>>>
>>>>> Spur:
>>>>> Implement Clement's much better solution for the stale supersend problem.
>>>>> Place code at the send site for super sends to follow stale forwarded
>>>>> receivers.  This parallels the interpreter implementation.
>>>>>
>>>>> Beef up the post-become scan of send sites to
>>>>> unlink all send sites that link to an invalid class tag.
>>>>>
>>>>> Cogit:
>>>>> Optimize StackToRegisterMappingCogit>>genReturnReceiver
>>>>> to not load ReceiverResultReg if it already contains self.
>>>>>
>>>>> Revise method map generation to provide multiple send type annotations.  Add
>>>>> an IsAnnotationExtension annotation type that implicitly has a zero displacement
>>>>> and uses its displacement bits to extend the preceeding IsSendCall annotation.
>>>>> This allows us to eliminate all the exotic entry-points and keep only the
>>>>> checked and unchecked entries.
>>>>>
>>>>> Change IA32's genPushRegisterArgsForNumArgs: to not smash TempReg now that it
>>>>> is used in directed super send trampolines.
>>>>>
>>>>> Use PushCq to pass small integer constants in the trampolines instead of
>>>>> smashing TempReg, which is now used to hold the directed supersend argument.
>>>>> Add support for PushCq.  Could use PushCw but on x86 PushCq is a lot shorter.
>>>>>
>>>>> Mac builds: Use UTC as the timezone for the build timestamp.  Using the local
>>>>> timezone doesn't work :(.
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: New Cog VMs available

Tobias Pape
Hi,

On 13.04.2015, at 13:29, Frank Shearar <[hidden email]> wrote:

> On 10 April 2015 at 16:21, Tobias Pape <[hidden email]> wrote:
>> Hi Eliot,
>>
>> On 10.04.2015, at 15:46, Eliot Miranda <[hidden email]> wrote:
>>
>>>
>>>
>>>
>>> On Apr 9, 2015, at 3:21 PM, Tobias Pape <[hidden email]> wrote:
>>>
>>>>
>>>> On 10.04.2015, at 00:17, Tobias Pape <[hidden email]> wrote:
>>>>
>>>>> Updated on the CI :)
>>>>
>>>> aaand reverted. We got a crash:
>>>>  http://build.squeak.org/job/SqueakTrunk/1245/console
>>>
>>
>>
>>> Yes.  I get a crash in updating with the v3 VM.  So far no problems with the Spur VM.  But Tibias, unless the bleeding edge gets tested how will I spit these regressions?  I need to know.  So can we not have two builds, one with the last known good and one with the bleeding edge?
>>
>> Sure, this is possible.
>> probably something like a matrix build.
>> Frank is more savvy with the infrastructure, tho.
>
> I'd say that SqueakTrunk should use the latest stable Cog - its main
> purpose is to test _trunk's_ bleeding edge. We do also have
> SqueakTrunkOnSpur, which should track Spur's/Cog's bleeding edge.
>

Ack :)

> Which means we should split the versions in the build scripts. Maybe
> we should just have a COG_VERSION and a SPUR_COG_VERSION as a
> not-too-stinky quick win?


Probably… I don't know yet. Have to make up my mind :)

>
> frank
>
>> best
>>        -Tobias
>>
>>
>>> Otherwise I'm flying blind.
>>>
>>>>
>>>> Best
>>>>  -Tobias
>>>>
>>>>> Best
>>>>>  -Tobias
>>>>> On 09.04.2015, at 23:28, Eliot Miranda <[hidden email]> wrote:



Reply | Threaded
Open this post in threaded view
|

Re: New Cog VMs available

marcel.taeumel (old)
In reply to this post by Eliot Miranda-2
Nice! :)

In the Squeak.manifest for cogwin, can we change

...
<dpiAware>true</dpiAware>
...

to false?

Best,
Marcel