New Cog VMs available

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

New Cog VMs available

Eliot Miranda-2
Hi All,

    recent instability seems to have been cured.  Please find new VMs at http://www.mirandabanda.org/files/Cog/VM/VM.r3266.  For Squeakers, these are close to release candidates for the upcoming 5.0 release.  I have one last modification to do with free space handling on start-up in Spur (the current VMs over-allocate free space), and maybe a minor speed-up of the LargeIntegersPlugin; other than that I intend bug fixes only.


CogVM binaries as per VMMaker.oscog-eem.1085/r3266

Avoid duplication in fetching active process and scheduler in process-switch machinery.

Take advantage of endianness for simpler large integer initialization.

Simplify primitiveMakePoint. Include primitiveMethodXray to introspect on Cog state of methods.

Refactor positive32BitIntegerFor: and signed32BitIntegerFor: in the realization that these
reduce to essentially integerObjectOf: in 64-bit Spur.  The idea is to inline if in 64-bit Spur
but not if in the 32-bit VMs.  Add notOption: processing to allow excluding
noInlineSigned32BitIntegerFor: et al.  Add hasSixtyFourBitImmediates to no longer assume that
wordSize = 8 implies 64-bit immediates.

Use positiveMachineIntegerFor: in place of positive32BitIntegerFor: in some plugins.

Simplify primitiveDisplayString given isArray:.
Simplify two B3DAcceleratorPlugin prims given topRemappableOop and isArray:

Slang:
Changes to type inferrence/propagation and inlining to better support 64-bit Spur.
See change log of VMMaker.oscog in 1067-1085 range for exhaustive details.
--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: New Cog VMs available

Chris Muller-3
> I have one last
> modification to do with free space handling on start-up in Spur (the current
> VMs over-allocate free space), ...

If its on start-up, does that mean I'll need to start and then
immediately save my image for the free-space to be freed in the
saved-state of the image?  I assume not. :)

Reply | Threaded
Open this post in threaded view
|

Re: New Cog VMs available

Eliot Miranda-2
Hi Chris,

On Mar 5, 2015, at 7:04 PM, Chris Muller <[hidden email]> wrote:

>> I have one last
>> modification to do with free space handling on start-up in Spur (the current
>> VMs over-allocate free space), ...
>
> If its on start-up, does that mean I'll need to start and then
> immediately save my image for the free-space to be freed in the
> saved-state of the image?  I assume not. :)

It depends on where you start.  If (once the issue is fixed) from a fresh spur image then no; if from an older one then yes, if you want a compact snapshot.  It'll need a snapshot to squeeze out some free space from the image.  The snapshot code tries to not write out empty segments or the free space at the end of each segment, but currently includes all other free space in old space.  Hopefully it'll get cleverer eventually.
Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] New Cog VMs available

douglas mcpherson
In reply to this post by Eliot Miranda-2
ARMv6 stack.v3 and stack.spur VMs updated accordingly.

Doug


On Mar 5, 2015, at 13:22, Eliot Miranda <[hidden email]> wrote:

Hi All,

    recent instability seems to have been cured.  Please find new VMs at http://www.mirandabanda.org/files/Cog/VM/VM.r3266.  For Squeakers, these are close to release candidates for the upcoming 5.0 release.  I have one last modification to do with free space handling on start-up in Spur (the current VMs over-allocate free space), and maybe a minor speed-up of the LargeIntegersPlugin; other than that I intend bug fixes only.


CogVM binaries as per VMMaker.oscog-eem.1085/r3266

Avoid duplication in fetching active process and scheduler in process-switch machinery.

Take advantage of endianness for simpler large integer initialization.

Simplify primitiveMakePoint. Include primitiveMethodXray to introspect on Cog state of methods.

Refactor positive32BitIntegerFor: and signed32BitIntegerFor: in the realization that these
reduce to essentially integerObjectOf: in 64-bit Spur.  The idea is to inline if in 64-bit Spur
but not if in the 32-bit VMs.  Add notOption: processing to allow excluding
noInlineSigned32BitIntegerFor: et al.  Add hasSixtyFourBitImmediates to no longer assume that
wordSize = 8 implies 64-bit immediates.

Use positiveMachineIntegerFor: in place of positive32BitIntegerFor: in some plugins.

Simplify primitiveDisplayString given isArray:.
Simplify two B3DAcceleratorPlugin prims given topRemappableOop and isArray:

Slang:
Changes to type inferrence/propagation and inlining to better support 64-bit Spur.
See change log of VMMaker.oscog in 1067-1085 range for exhaustive details.
--
best,
Eliot



Reply | Threaded
Open this post in threaded view
|

Re: [Vm-dev] New Cog VMs available

Eliot Miranda-2
Thanks Doug!

On Fri, Mar 6, 2015 at 9:28 AM, Douglas McPherson <[hidden email]> wrote:
 
ARMv6 stack.v3 and stack.spur VMs updated accordingly.

Doug


On Mar 5, 2015, at 13:22, Eliot Miranda <[hidden email]> wrote:

Hi All,

    recent instability seems to have been cured.  Please find new VMs at http://www.mirandabanda.org/files/Cog/VM/VM.r3266.  For Squeakers, these are close to release candidates for the upcoming 5.0 release.  I have one last modification to do with free space handling on start-up in Spur (the current VMs over-allocate free space), and maybe a minor speed-up of the LargeIntegersPlugin; other than that I intend bug fixes only.


CogVM binaries as per VMMaker.oscog-eem.1085/r3266

Avoid duplication in fetching active process and scheduler in process-switch machinery.

Take advantage of endianness for simpler large integer initialization.

Simplify primitiveMakePoint. Include primitiveMethodXray to introspect on Cog state of methods.

Refactor positive32BitIntegerFor: and signed32BitIntegerFor: in the realization that these
reduce to essentially integerObjectOf: in 64-bit Spur.  The idea is to inline if in 64-bit Spur
but not if in the 32-bit VMs.  Add notOption: processing to allow excluding
noInlineSigned32BitIntegerFor: et al.  Add hasSixtyFourBitImmediates to no longer assume that
wordSize = 8 implies 64-bit immediates.

Use positiveMachineIntegerFor: in place of positive32BitIntegerFor: in some plugins.

Simplify primitiveDisplayString given isArray:.
Simplify two B3DAcceleratorPlugin prims given topRemappableOop and isArray:

Slang:
Changes to type inferrence/propagation and inlining to better support 64-bit Spur.
See change log of VMMaker.oscog in 1067-1085 range for exhaustive details.
--
best,
Eliot





--
best,
Eliot