VM Maker: VMMaker.oscog-eem.2256.mcz

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

VM Maker: VMMaker.oscog-eem.2256.mcz

commits-2
 
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)