[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