[Vm-dev] VM Maker: VMMaker.oscog-eem.2256.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jul 19 21:30:58 UTC 2017


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2256.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.2256
Author: eem
Time: 19 July 2017, 2:30:03.191349 pm
UUID: a09b02f9-394f-4d4e-bb52-4380bd587207
Ancestors: VMMaker.oscog-eem.2255

Provide primitive 248 as a don't-copy-hash alternative to primitive 72 (primitiveArrayBecomeForward, the primitive in elementsForwardIdentityTo: which implements becomeForward:.

=============== Diff against VMMaker.oscog-eem.2255 ===============

Item was changed:
  ----- Method: InterpreterPrimitives>>primitiveArrayBecomeOneWayCopyHash (in category 'object access primitives') -----
  primitiveArrayBecomeOneWayCopyHash
  	"Similar to primitiveArrayBecomeOneWay but accepts a third argument deciding whether to
+ 	 copy the receiver's elements identity hashes over the argument's elements identity hashes."
- 	 copy the receiver's element's identity hash over the argument's elementy's identity hash."
  
  	| copyHashFlag ec |
  	self stackTop = objectMemory trueObject
  		ifTrue: [copyHashFlag := true]
  		ifFalse:
  			[self stackTop = objectMemory falseObject
  				ifTrue: [copyHashFlag := false]
  				ifFalse:
  					[self primitiveFailFor: PrimErrBadArgument.
  					 ^nil]].
  	ec := objectMemory
  			become: (self stackValue: 2)
  			with: (self stackValue: 1)
  			twoWay: false
  			copyHash: copyHashFlag.
  	ec = PrimNoErr
  		ifTrue: [self pop: argumentCount]
  		ifFalse: [self primitiveFailFor: ec]!

Item was added:
+ ----- Method: InterpreterPrimitives>>primitiveArrayBecomeOneWayNoCopyHash (in category 'object access primitives') -----
+ primitiveArrayBecomeOneWayNoCopyHash
+ 	"Similar to primitiveArrayBecomeOneWay but does /not/ copy the receiver's
+ 	 elements identity hashes over the argument's elements identity hashes."
+ 
+ 	| arg rcvr ec |
+ 	arg := self stackTop.
+ 	rcvr := self stackValue: 1.
+ 	ec := objectMemory become: rcvr with: arg twoWay: false copyHash: false.
+ 	ec = PrimNoErr
+ 		ifTrue: [self pop: 1]
+ 		ifFalse: [self primitiveFailFor: ec]!

Item was changed:
  ----- Method: StackInterpreter class>>initializePrimitiveTable (in category 'initialization') -----
(excessive size, no diff calculated)



More information about the Vm-dev mailing list