[Vm-dev] Re: New Cog VMs available
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>
> 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
> 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 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
> Use positiveMachineIntegerFor: in place of
> positive32BitIntegerFor: in some plugins.
> Simplify two B3DAcceleratorPlugin prims given topRemappableOop and isArray:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Vm-dev