[Pkg] The Trunk: Kernel-ar.324.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Dec 5 02:44:24 UTC 2009


Andreas Raab uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ar.324.mcz

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

Name: Kernel-ar.324
Author: ar
Time: 4 December 2009, 6:43:05 am
UUID: f04afe5f-4573-5b43-9dc4-0504003e2e34
Ancestors: Kernel-ar.323

Faster #ensure: handling: Instead of having the default path use thisContext>>tempAt:put: (which is very slow for the JIT) use a temp assignment and let only the termination handling actually do #tempAt:put:.

Part 4 updates #ifCurtailed:.

=============== Diff against Kernel-ar.323 ===============

Item was changed:
  ----- Method: BlockContext>>ifCurtailed: (in category 'exceptions') -----
  ifCurtailed: aBlock
+ 	"Evaluate the receiver with an abnormal termination action.
+ 	 Evaluate aBlock only if execution is unwound during execution
+ 	 of the receiver.  If execution of the receiver finishes normally do
+ 	 not evaluate aBlock.  N.B.  This method is *not* implemented as a
+ 	 primitive.  Primitive 198 always fails.  The VM uses prim 198 in a
+ 	 context's method as the mark for an ensure:/ifCurtailed: activation."
+ 	| complete result |
- 	"Evaluate the receiver with an abnormal termination action."
- 
  	<primitive: 198>
+ 	result := self value.
+ 	complete := true.
+ 	^result!
- 	^ self value!

Item was changed:
  ----- Method: BlockClosure>>ifCurtailed: (in category 'exceptions') -----
  ifCurtailed: aBlock
  	"Evaluate the receiver with an abnormal termination action.
  	 Evaluate aBlock only if execution is unwound during execution
+ 	 of the receiver.  If execution of the receiver finishes normally do
+ 	 not evaluate aBlock.  N.B.  This method is *not* implemented as a
+ 	 primitive.  Primitive 198 always fails.  The VM uses prim 198 in a
+ 	 context's method as the mark for an ensure:/ifCurtailed: activation."
+ 	| complete result |
- 	 of the receiver.  If execution of the receiver finishes normally
- 	 do not evaluate aBlock."
- 
  	<primitive: 198>
+ 	result := self valueNoContextSwitch.
+ 	complete := true.
+ 	^result!
- 	^self valueNoContextSwitch!



More information about the Packages mailing list