[squeak-dev] The Trunk: Kernel-eem.1366.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jan 27 00:28:01 UTC 2021

Eliot Miranda uploaded a new version of Kernel to project The Trunk:

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

Name: Kernel-eem.1366
Author: eem
Time: 26 January 2021, 4:27:57.204259 pm
UUID: 3a706d32-c2d6-416f-82c1-bbf735650385
Ancestors: Kernel-eem.1365

Slightly faster implementation of Context>>#isPrimFailToken:.
Improve the comments in Context>>#isHandlerContext/#isUnwindContext.
Nuke an obsolete method.

=============== Diff against Kernel-eem.1365 ===============

Item was changed:
  ----- Method: Context>>isHandlerContext (in category 'private-exceptions') -----
+ 	"Answer if the receiver is for a method that is marked as an exception handler.
+ 	 BlockClosure>>#on:do: uses this primitive to identify itself to the VM
+ 	 as an exception handler method, which the VM uses in primitive 197
+ 	 Context>>#findNextHandlerContextStarting, primitiveFindHandlerContext,
+ 	 to accelerate the search for exception handlers."
- "is this context for  method that is marked?"
  	^method primitive = 199!

Item was changed:
  ----- Method: Context>>isPrimFailToken: (in category 'private') -----
  isPrimFailToken: anObject
+ 	^(self objectClass: anObject) isArray
- 	^(self objectClass: anObject) == Array
  	  and: [anObject size = 2
+ 	  and: [(anObject at: 1) == PrimitiveFailToken]]!
- 	  and: [anObject first == PrimitiveFailToken]]!

Item was changed:
  ----- Method: Context>>isUnwindContext (in category 'private-exceptions') -----
+ 	"Answer if the receiver is for a method that is marked as a non-local return/exception unwind protect.
+ 	 BlockClosure>>#ensure: and BlockClosure>>#ifCurtailed: use this primitive to identify
+ 	 themseves to the VM as unwind protect methods. The VM uses this in primitive 195
+ 	 Context>>#findNextUnwindContextUpTo:, primitiveFindNextUnwindContext, to
+ 	 accelerate the search for unwind protects."
- "is this context for  method that is marked?"
  	^method primitive = 198!

Item was removed:
- ----- Method: Context>>tryPrimitiveFor:receiver:args: (in category 'private') -----
- tryPrimitiveFor: method receiver: receiver args: arguments 
- 	"If this method has a primitive index, then run the primitive and return its result.
- 	Otherwise (and also if the primitive fails) return PrimitiveFailToken,
- 	as an indication that the method should be activated and run as bytecodes."
- 	| primIndex |
- 	(primIndex := method primitive) = 0 ifTrue: [^{PrimitiveFailToken. nil}].
- 	^ self doPrimitive: primIndex method: method receiver: receiver args: arguments!

More information about the Squeak-dev mailing list