New CogVMs available

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

New CogVMs available

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

CogVM binaries as per VMMaker.oscog-eem.842/r3058

Spur:
Provide unpinObject: for InterpreterProxy.

Fix initialization of the heap-resident remembered set added by
VMMaker.oscog-eem.827.  It must be created /after/ old space is initialized.

Fix two become bugs surfaced when adding/removing inst vars to/from Association,
Binding et al.  First, the class table must be scanned to ensure there are no
forwarders to classes (much cheaper than the full hierarchy walk to follow
method dictionaries etc that was done).  Second, machine code methods that gain
a new reference through become must get added to the youngReferrers.  Add a new
become effect flag, OldBecameNew that captures this and respond to it in
CoInterpreter>>postBecomeAction: by adding all methods to youngReferrers so
that on the next scavenge all will be made right.

Fix GC of machine code, which must follow forwarders when doing
markAndTraceLiteral: and again add to youngReferrers if following
gains a new ref.  Refactoring of markAndTraceLiteral: into
markAndTraceLiteral:in:at: et al required.

Fix assert in addFreeSubTree:.

General:
Support the alternate bytecode set header in all VMs to ease testing of
multiple bytecode sets.  This means methods with the sign bit set have
no primitive field and a larger num literals field, but no more.

Fix longPrintOop: (actually printOopShortInner:) for
global variable printing in face of new Environments.

Cogit:
Clean up adding to the youngReferrers by providing ensureInYoungReferrers:.
Since there always is room on youngReferrers, nuke roomOnYoungReferrersList,
canLinkToYoungClasses and caller code, simplifying ceSend:super:to:numArgs: etc.

Fix assert in followForwardedLiteralsIn:

General:
Change the scanning for initial nils scheme in the StackToRegisterMappingCogit
to answer the number of push nils in a bytecode, instead of whether the
bytecode is a push nil.  Refactor genReturnTopFromBlock into genBlockReturn.
These changes accomodate Sista.

Rationalize the length functions, deleting byteLengthOf:, fetchLong32LengthOf:
& fetchWordLengthOf: and providing numBytesOf:, num16BitUnitsOf:,
num32BitUnitsOf:, num64BitUnitsOf: and numBytesOf:.

Provide fetch/storeShort16:ofObject:[withValue:] and
fetch/storeLong64:ofObject:[withValue:].

--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: New CogVMs available

Frank Shearar-3
On 5 August 2014 03:49, Eliot Miranda <[hidden email]> wrote:
> ...at http://www.mirandabanda.org/files/Cog/VM/VM.r3058/.
>
> CogVM binaries as per VMMaker.oscog-eem.842/r3058

I'll update CI this evening.

Quick question - for the Linux VMs, am I correct in thinking that MT
VMs are _always_ HT? (And that on Windows they are never?)

frank

Reply | Threaded
Open this post in threaded view
|

Re: New CogVMs available

Eliot Miranda-2
Hi Frank,

On Aug 5, 2014, at 2:20 AM, Frank Shearar <[hidden email]> wrote:

> On 5 August 2014 03:49, Eliot Miranda <[hidden email]> wrote:
>> ...at http://www.mirandabanda.org/files/Cog/VM/VM.r3058/.
>>
>> CogVM binaries as per VMMaker.oscog-eem.842/r3058
>
> I'll update CI this evening.
>
> Quick question - for the Linux VMs, am I correct in thinking that MT
> VMs are _always_ HT? (And that on Windows they are never?)

Mac and Win VMs have only heartbeat threads.  Linux VMs have either a heartbeat thread or the ITIMER heartbeat.  If the linux archive contains  "ht" it's a threaded heartbeat VM, period.  The naming is screwed up because ITIMER used to be the only option on linux.  Would changing the names so that linux ITIMER VMs were singled out be useful?  

> frank


Eliot (phone)
Reply | Threaded
Open this post in threaded view
|

Re: New CogVMs available

Frank Shearar-3
On 5 August 2014 16:00, Eliot Miranda <[hidden email]> wrote:

> Hi Frank,
>
> On Aug 5, 2014, at 2:20 AM, Frank Shearar <[hidden email]> wrote:
>
>> On 5 August 2014 03:49, Eliot Miranda <[hidden email]> wrote:
>>> ...at http://www.mirandabanda.org/files/Cog/VM/VM.r3058/.
>>>
>>> CogVM binaries as per VMMaker.oscog-eem.842/r3058
>>
>> I'll update CI this evening.
>>
>> Quick question - for the Linux VMs, am I correct in thinking that MT
>> VMs are _always_ HT? (And that on Windows they are never?)
>
> Mac and Win VMs have only heartbeat threads.  Linux VMs have either a heartbeat thread or the ITIMER heartbeat.  If the linux archive contains  "ht" it's a threaded heartbeat VM, period.  The naming is screwed up because ITIMER used to be the only option on linux.  Would changing the names so that linux ITIMER VMs were singled out be useful?

Mainly I'm trying to figure out how to map "kind of VM" to a file
name. I just noticed that
http://www.mirandabanda.org/files/Cog/VM/VM.r3058/ has a cogmtlinuxht,
but not a cogmtlinux, VM. But there are both coglinux and coglinuxht
and images, so it looks like MT and HT are orthogonal switches (on
Linux, at least). If they are, that's great, and I need to extend my
existing kind-of-VM to reflect this, because at the moment it knows
about :mt, :spur and :normal VMs, whereas it might need to know about
:mtht, :mt and :ht VMs. Make sense?
(https://github.com/squeak-smalltalk/squeak-ci/blob/master/lib/squeak-ci/cog.rb
has my horrible hacks: look at cog_location and filename for the
current mapping of kind-of-VM -> string.

frank

>> frank
>
>
> Eliot (phone)

Reply | Threaded
Open this post in threaded view
|

Re: New CogVMs available

Eliot Miranda-2



On Tue, Aug 5, 2014 at 8:13 AM, Frank Shearar <[hidden email]> wrote:
On 5 August 2014 16:00, Eliot Miranda <[hidden email]> wrote:
> Hi Frank,
>
> On Aug 5, 2014, at 2:20 AM, Frank Shearar <[hidden email]> wrote:
>
>> On 5 August 2014 03:49, Eliot Miranda <[hidden email]> wrote:
>>> ...at http://www.mirandabanda.org/files/Cog/VM/VM.r3058/.
>>>
>>> CogVM binaries as per VMMaker.oscog-eem.842/r3058
>>
>> I'll update CI this evening.
>>
>> Quick question - for the Linux VMs, am I correct in thinking that MT
>> VMs are _always_ HT? (And that on Windows they are never?)
>
> Mac and Win VMs have only heartbeat threads.  Linux VMs have either a heartbeat thread or the ITIMER heartbeat.  If the linux archive contains  "ht" it's a threaded heartbeat VM, period.  The naming is screwed up because ITIMER used to be the only option on linux.  Would changing the names so that linux ITIMER VMs were singled out be useful?

Mainly I'm trying to figure out how to map "kind of VM" to a file
name. I just noticed that
http://www.mirandabanda.org/files/Cog/VM/VM.r3058/ has a cogmtlinuxht,
but not a cogmtlinux, VM. But there are both coglinux and coglinuxht
and images, so it looks like MT and HT are orthogonal switches (on
Linux, at least).

Yes.  And there is no such switch elsewhere.  And ITIMER will eventually die the death.
 
If they are, that's great, and I need to extend my
existing kind-of-VM to reflect this, because at the moment it knows
about :mt, :spur and :normal VMs, whereas it might need to know about
:mtht, :mt and :ht VMs. Make sense?

Yes.

(https://github.com/squeak-smalltalk/squeak-ci/blob/master/lib/squeak-ci/cog.rb
has my horrible hacks: look at cog_location and filename for the
current mapping of kind-of-VM -> string.

frank
--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: New CogVMs available

Frank Shearar-3
On 5 August 2014 17:43, Eliot Miranda <[hidden email]> wrote:

>
>
>
> On Tue, Aug 5, 2014 at 8:13 AM, Frank Shearar <[hidden email]>
> wrote:
>>
>> On 5 August 2014 16:00, Eliot Miranda <[hidden email]> wrote:
>> > Hi Frank,
>> >
>> > On Aug 5, 2014, at 2:20 AM, Frank Shearar <[hidden email]>
>> > wrote:
>> >
>> >> On 5 August 2014 03:49, Eliot Miranda <[hidden email]> wrote:
>> >>> ...at http://www.mirandabanda.org/files/Cog/VM/VM.r3058/.
>> >>>
>> >>> CogVM binaries as per VMMaker.oscog-eem.842/r3058
>> >>
>> >> I'll update CI this evening.
>> >>
>> >> Quick question - for the Linux VMs, am I correct in thinking that MT
>> >> VMs are _always_ HT? (And that on Windows they are never?)
>> >
>> > Mac and Win VMs have only heartbeat threads.  Linux VMs have either a
>> > heartbeat thread or the ITIMER heartbeat.  If the linux archive contains
>> > "ht" it's a threaded heartbeat VM, period.  The naming is screwed up because
>> > ITIMER used to be the only option on linux.  Would changing the names so
>> > that linux ITIMER VMs were singled out be useful?
>>
>> Mainly I'm trying to figure out how to map "kind of VM" to a file
>> name. I just noticed that
>> http://www.mirandabanda.org/files/Cog/VM/VM.r3058/ has a cogmtlinuxht,
>> but not a cogmtlinux, VM. But there are both coglinux and coglinuxht
>> and images, so it looks like MT and HT are orthogonal switches (on
>> Linux, at least).
>
>
> Yes.  And there is no such switch elsewhere.  And ITIMER will eventually die
> the death.

With 3063 has ITIMER died the death? (I ask because there's no
coglinux VM, only coglinuxht.)

frank

>> If they are, that's great, and I need to extend my
>> existing kind-of-VM to reflect this, because at the moment it knows
>> about :mt, :spur and :normal VMs, whereas it might need to know about
>> :mtht, :mt and :ht VMs. Make sense?
>
>
> Yes.
>
>>
>> (https://github.com/squeak-smalltalk/squeak-ci/blob/master/lib/squeak-ci/cog.rb
>> has my horrible hacks: look at cog_location and filename for the
>> current mapping of kind-of-VM -> string.
>>
>> frank
>
> --
> best,
> Eliot
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: New CogVMs available

Eliot Miranda-2
Hi Frank,

On Sep 5, 2014, at 2:06 PM, Frank Shearar <[hidden email]> wrote:

> On 5 August 2014 17:43, Eliot Miranda <[hidden email]> wrote:
>>
>>
>>
>> On Tue, Aug 5, 2014 at 8:13 AM, Frank Shearar <[hidden email]>
>> wrote:
>>>
>>> On 5 August 2014 16:00, Eliot Miranda <[hidden email]> wrote:
>>>> Hi Frank,
>>>>
>>>> On Aug 5, 2014, at 2:20 AM, Frank Shearar <[hidden email]>
>>>> wrote:
>>>>
>>>>> On 5 August 2014 03:49, Eliot Miranda <[hidden email]> wrote:
>>>>>> ...at http://www.mirandabanda.org/files/Cog/VM/VM.r3058/.
>>>>>>
>>>>>> CogVM binaries as per VMMaker.oscog-eem.842/r3058
>>>>>
>>>>> I'll update CI this evening.
>>>>>
>>>>> Quick question - for the Linux VMs, am I correct in thinking that MT
>>>>> VMs are _always_ HT? (And that on Windows they are never?)
>>>>
>>>> Mac and Win VMs have only heartbeat threads.  Linux VMs have either a
>>>> heartbeat thread or the ITIMER heartbeat.  If the linux archive contains
>>>> "ht" it's a threaded heartbeat VM, period.  The naming is screwed up because
>>>> ITIMER used to be the only option on linux.  Would changing the names so
>>>> that linux ITIMER VMs were singled out be useful?
>>>
>>> Mainly I'm trying to figure out how to map "kind of VM" to a file
>>> name. I just noticed that
>>> http://www.mirandabanda.org/files/Cog/VM/VM.r3058/ has a cogmtlinuxht,
>>> but not a cogmtlinux, VM. But there are both coglinux and coglinuxht
>>> and images, so it looks like MT and HT are orthogonal switches (on
>>> Linux, at least).
>>
>>
>> Yes.  And there is no such switch elsewhere.  And ITIMER will eventually die
>> the death.
>
> With 3063 has ITIMER died the death? (I ask because there's no
> coglinux VM, only coglinuxht.)

There is a Cog ITIMER VM but no Spur ITIMER VM.  I can add one if requested but hope that it won't be needed.  

> frank
>
>>> If they are, that's great, and I need to extend my
>>> existing kind-of-VM to reflect this, because at the moment it knows
>>> about :mt, :spur and :normal VMs, whereas it might need to know about
>>> :mtht, :mt and :ht VMs. Make sense?
>>
>>
>> Yes.
>>
>>>
>>> (https://github.com/squeak-smalltalk/squeak-ci/blob/master/lib/squeak-ci/cog.rb
>>> has my horrible hacks: look at cog_location and filename for the
>>> current mapping of kind-of-VM -> string.
>>>
>>> frank
>>
>> --
>> best,
>> Eliot

Reply | Threaded
Open this post in threaded view
|

Re: New CogVMs available

Frank Shearar-3
On 6 September 2014 15:13, Eliot Miranda <[hidden email]> wrote:

> Hi Frank,
>
> On Sep 5, 2014, at 2:06 PM, Frank Shearar <[hidden email]> wrote:
>
>> On 5 August 2014 17:43, Eliot Miranda <[hidden email]> wrote:
>>>
>>>
>>>
>>> On Tue, Aug 5, 2014 at 8:13 AM, Frank Shearar <[hidden email]>
>>> wrote:
>>>>
>>>> On 5 August 2014 16:00, Eliot Miranda <[hidden email]> wrote:
>>>>> Hi Frank,
>>>>>
>>>>> On Aug 5, 2014, at 2:20 AM, Frank Shearar <[hidden email]>
>>>>> wrote:
>>>>>
>>>>>> On 5 August 2014 03:49, Eliot Miranda <[hidden email]> wrote:
>>>>>>> ...at http://www.mirandabanda.org/files/Cog/VM/VM.r3058/.
>>>>>>>
>>>>>>> CogVM binaries as per VMMaker.oscog-eem.842/r3058
>>>>>>
>>>>>> I'll update CI this evening.
>>>>>>
>>>>>> Quick question - for the Linux VMs, am I correct in thinking that MT
>>>>>> VMs are _always_ HT? (And that on Windows they are never?)
>>>>>
>>>>> Mac and Win VMs have only heartbeat threads.  Linux VMs have either a
>>>>> heartbeat thread or the ITIMER heartbeat.  If the linux archive contains
>>>>> "ht" it's a threaded heartbeat VM, period.  The naming is screwed up because
>>>>> ITIMER used to be the only option on linux.  Would changing the names so
>>>>> that linux ITIMER VMs were singled out be useful?
>>>>
>>>> Mainly I'm trying to figure out how to map "kind of VM" to a file
>>>> name. I just noticed that
>>>> http://www.mirandabanda.org/files/Cog/VM/VM.r3058/ has a cogmtlinuxht,
>>>> but not a cogmtlinux, VM. But there are both coglinux and coglinuxht
>>>> and images, so it looks like MT and HT are orthogonal switches (on
>>>> Linux, at least).
>>>
>>>
>>> Yes.  And there is no such switch elsewhere.  And ITIMER will eventually die
>>> the death.
>>
>> With 3063 has ITIMER died the death? (I ask because there's no
>> coglinux VM, only coglinuxht.)
>
> There is a Cog ITIMER VM but no Spur ITIMER VM.  I can add one if requested but hope that it won't be needed.

I don't need one - I just made CI use an ht one when on a linux box. I
just wondered because 3063 doesn't have one, and 3060 did

frank

>> frank
>>
>>>> If they are, that's great, and I need to extend my
>>>> existing kind-of-VM to reflect this, because at the moment it knows
>>>> about :mt, :spur and :normal VMs, whereas it might need to know about
>>>> :mtht, :mt and :ht VMs. Make sense?
>>>
>>>
>>> Yes.
>>>
>>>>
>>>> (https://github.com/squeak-smalltalk/squeak-ci/blob/master/lib/squeak-ci/cog.rb
>>>> has my horrible hacks: look at cog_location and filename for the
>>>> current mapping of kind-of-VM -> string.
>>>>
>>>> frank
>>>
>>> --
>>> best,
>>> Eliot
>