[squeak-dev] Re: New Cog VMs available

Eliot Miranda eliot.miranda at gmail.com
Wed Feb 25 04:10:58 UTC 2015


On Tue, Feb 24, 2015 at 4:41 PM, Eliot Miranda <eliot.miranda at gmail.com>
wrote:

> 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.
>

Alas, no.  Large file support is broken.  I'm taking these down.


>
> ------------------------------------------------------------------------
> CogVM source as per VMMaker.oscog-eem.1080/r3263
>
> Mostly internal changes due to better inlining and type inferrence
> machinery
> in Slang.
>
> General:
> Fix a type declaration error uncovered by the new inlining.
> Simplify primitiveMakePoint. Include primitiveMethodXray
> Include freeMethod: in Cogit's api for method xray.
>
> Spur:
> Fix a typing bug in initializeOldSpaceFirstFree:.
>
> Newspeak:
> Move the Newspeak plugins to nsspursrc/plugins.
>
> Fix privacy violation checking for super sends.
> Fix some type warnings in Spur stack VMs.
>
> Slang:
> More improvement to type inferrence/propagation.  Support ifTrue:ifFalse:.
> Better separate the passes in
> inferTypesForImplicitlyTypedVariablesAndMethods.
> Fix slip in nodeToCast:to:.  Provide types for atan, et al.  Avoid casting
> nil.
>
> Don't inline complex expressions that are bound to variables used in
> asserts.
>
> General:
> 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
> (primitiveDecompressFromByteArray)
> - do /not/ promote a variable typed with integral type to a floating point
> type
> (transformColor:)
>
> 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
> count.
>
> Slang:
> 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:
>
> General:
> Simplify primitiveDisplayString given isArray:.
>
> 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 two B3DAcceleratorPlugin prims given topRemappableOop and isArray:
> --
> best,
> Eliot
>



-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150224/837020b6/attachment.htm


More information about the Squeak-dev mailing list