[squeak-dev] New Cog VMs available

Eliot Miranda eliot.miranda at gmail.com
Wed Feb 25 00:41:09 UTC 2015

Hi All,

    after a period of instability due to internal changes needed for the
Spur 64-bit V I hope that these latest VMs will be more stable.

CogVM source as per VMMaker.oscog-eem.1080/r3263

Mostly internal changes due to better inlining and type inferrence machinery
in Slang.

Fix a type declaration error uncovered by the new inlining.
Simplify primitiveMakePoint. Include primitiveMethodXray
Include freeMethod: in Cogit's api for method xray.

Fix a typing bug in initializeOldSpaceFirstFree:.

Move the Newspeak plugins to nsspursrc/plugins.

Fix privacy violation checking for super sends.
Fix some type warnings in Spur stack VMs.

More improvement to type inferrence/propagation.  Support ifTrue:ifFalse:.
Better separate the passes in
Fix slip in nodeToCast:to:.  Provide types for atan, et al.  Avoid casting

Don't inline complex expressions that are bound to variables used in

Add an option to control FailUnbalancedPrimitives and
no longer burden the Stack VMs with the responsibility.

Fix typing multiple assignments to a variable
- promote the type to the largest integral type of all assignments
- do /not/ promote a variable typed with integral type to a floating point

On type compatibility of inlined expressions, insist on signed
compatibility or
accept an untyped actual.

Improve the type inferrence machinery further to
support pointer subtraction.  Eliminate code duplication
(determineTypeFor:in: now uses returnTypeForSend:, etc).

Change the heuristic for inlining expressions to include a maximum usage

Rescue translation of the non-64-bit Spur VMs by
a) doing a better job of super expansions, handling expansions
that are returning ifs as well as just returns correctly.
b) transforming variable := expr ifTrue: [s1] ifFalse: [s2] into
    expr ifTrue: [variable := s1] ifFalse: [variable := s2]
to allow inlining of s1 & s2.

And take advantage of the better inlining in copyAndForward:

Simplify primitiveDisplayString given isArray:.

Refactor positive32BitIntegerFor: and signed32BitIntegerFor: in the
that these reduce to essentially integerObjectOf: in 64-bit Spur.  The idea
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

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

Simplify two B3DAcceleratorPlugin prims given topRemappableOop and isArray:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150224/91ea78d5/attachment.htm

More information about the Squeak-dev mailing list