Posted by
commits-2 on
Jan 27, 2021; 12:28am
URL: https://forum.world.st/The-Trunk-Kernel-eem-1366-mcz-tp5126558.html
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.1366.mcz==================== 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') -----
isHandlerContext
+ "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') -----
isUnwindContext
+ "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!