The Trunk: Kernel-ar.324.mcz

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

The Trunk: Kernel-ar.324.mcz

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