[Vm-dev] VM Maker: BytecodeSets.spur-eem.46.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Apr 8 16:08:43 UTC 2016
Eliot Miranda uploaded a new version of BytecodeSets to project VM Maker:
http://source.squeak.org/VMMaker/BytecodeSets.spur-eem.46.mcz
==================== Summary ====================
Name: BytecodeSets.spur-eem.46
Author: eem
Time: 8 April 2016, 9:08:29.427527 am
UUID: 83013d3c-1bf5-461e-8efc-af9cbe2161e1
Ancestors: BytecodeSets.spur-eem.45
Add the revised primitive numbers for FullBlockClosure value[:*]
=============== Diff against BytecodeSets.spur-eem.45 ===============
Item was added:
+ ----- Method: FullBlockClosure>>value (in category 'evaluating') -----
+ value
+ "Activate the receiver, creating a closure activation (MethodContext)
+ whose closure is the receiver and whose caller is the sender of this
+ message. Supply the copied values to the activation as its copied
+ temps. Primitive. Essential."
+ <primitive: 207>
+ | newContext |
+ numArgs ~= 0 ifTrue:
+ [self numArgsError: 0].
+ false
+ ifTrue: "Old code to simulate the closure value primitive on VMs that lack it."
+ [newContext := self asContextWithSender: thisContext sender.
+ thisContext privSender: newContext]
+ ifFalse: [self primitiveFailed]!
Item was added:
+ ----- Method: FullBlockClosure>>value: (in category 'evaluating') -----
+ value: firstArg
+ "Activate the receiver, creating a closure activation (MethodContext)
+ whose closure is the receiver and whose caller is the sender of this
+ message. Supply the argument and copied values to the activation
+ as its argument and copied temps. Primitive. Essential."
+ <primitive: 207>
+ | newContext |
+ numArgs ~= 1 ifTrue:
+ [self numArgsError: 1].
+ false
+ ifTrue: "Old code to simulate the closure value primitive on VMs that lack it."
+ [newContext := self asContextWithSender: thisContext sender.
+ newContext at: 1 put: firstArg.
+ thisContext privSender: newContext]
+ ifFalse: [self primitiveFailed]!
Item was added:
+ ----- Method: FullBlockClosure>>value:value: (in category 'evaluating') -----
+ value: firstArg value: secondArg
+ "Activate the receiver, creating a closure activation (MethodContext)
+ whose closure is the receiver and whose caller is the sender of this
+ message. Supply the arguments and copied values to the activation
+ as its arguments and copied temps. Primitive. Essential."
+ <primitive: 207>
+ | newContext |
+ numArgs ~= 2 ifTrue:
+ [self numArgsError: 2].
+ false
+ ifTrue: "Old code to simulate the closure value primitive on VMs that lack it."
+ [newContext := self asContextWithSender: thisContext sender.
+ newContext at: 1 put: firstArg.
+ newContext at: 2 put: secondArg.
+ thisContext privSender: newContext]
+ ifFalse: [self primitiveFailed]!
Item was added:
+ ----- Method: FullBlockClosure>>value:value:value: (in category 'evaluating') -----
+ value: firstArg value: secondArg value: thirdArg
+ "Activate the receiver, creating a closure activation (MethodContext)
+ whose closure is the receiver and whose caller is the sender of this
+ message. Supply the arguments and copied values to the activation
+ as its arguments and copied temps. Primitive. Essential."
+ <primitive: 207>
+ | newContext |
+ numArgs ~= 3 ifTrue:
+ [self numArgsError: 3].
+ false
+ ifTrue: "Old code to simulate the closure value primitive on VMs that lack it."
+ [newContext := self asContextWithSender: thisContext sender.
+ newContext at: 1 put: firstArg.
+ newContext at: 2 put: secondArg.
+ newContext at: 3 put: thirdArg.
+ thisContext privSender: newContext]
+ ifFalse: [self primitiveFailed]!
Item was added:
+ ----- Method: FullBlockClosure>>value:value:value:value: (in category 'evaluating') -----
+ value: firstArg value: secondArg value: thirdArg value: fourthArg
+ "Activate the receiver, creating a closure activation (MethodContext)
+ whose closure is the receiver and whose caller is the sender of this
+ message. Supply the arguments and copied values to the activation
+ as its arguments and copied temps. Primitive. Essential."
+ <primitive: 207>
+ | newContext |
+ numArgs ~= 4 ifTrue:
+ [self numArgsError: 4].
+ false
+ ifTrue: "Old code to simulate the closure value primitive on VMs that lack it."
+ [newContext := self asContextWithSender: thisContext sender.
+ newContext at: 1 put: firstArg.
+ newContext at: 2 put: secondArg.
+ newContext at: 3 put: thirdArg.
+ newContext at: 4 put: fourthArg.
+ thisContext privSender: newContext]
+ ifFalse: [self primitiveFailed]!
Item was added:
+ ----- Method: FullBlockClosure>>valueNoContextSwitch (in category 'evaluating') -----
+ valueNoContextSwitch
+ "An exact copy of BlockClosure>>value except that this version will not preempt
+ the current process on block activation if a higher-priority process is runnable.
+ Primitive. Essential."
+ <primitive: 209>
+ numArgs ~= 0 ifTrue:
+ [self numArgsError: 0].
+ self primitiveFailed!
Item was added:
+ ----- Method: FullBlockClosure>>valueNoContextSwitch: (in category 'evaluating') -----
+ valueNoContextSwitch: anArg
+ "An exact copy of BlockClosure>>value: except that this version will not preempt
+ the current process on block activation if a higher-priority process is runnable.
+ Primitive. Essential."
+ <primitive: 209>
+ numArgs ~= 1 ifTrue:
+ [self numArgsError: 1].
+ self primitiveFailed!
Item was added:
+ ----- Method: FullBlockClosure>>valueWithArguments: (in category 'evaluating') -----
+ valueWithArguments: anArray
+ "Activate the receiver, creating a closure activation (MethodContext)
+ whose closure is the receiver and whose caller is the sender of this
+ message. Supply the arguments in an anArray and copied values to
+ the activation as its arguments and copied temps. Primitive. Essential."
+ <primitive: 208>
+ | newContext |
+ numArgs ~= anArray size ifTrue:
+ [self numArgsError: anArray size].
+ false
+ ifTrue: "Old code to simulate the closure value primitive on VMs that lack it."
+ [newContext := self asContextWithSender: thisContext sender.
+ 1 to: numArgs do:
+ [:i| newContext at: i put: (anArray at: i)].
+ thisContext privSender: newContext]
+ ifFalse: [self primitiveFailed]!
More information about the Vm-dev
mailing list