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

Levente Uzonyi leves at caesar.elte.hu
Thu Jan 28 12:46:01 UTC 2021


Hi Eliot,

On Wed, 27 Jan 2021, commits at source.squeak.org wrote:

> 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

I think you meant to write

 	^(anObject isArray

I also wonder why you used #objectClass: there instead of #class in the 
previous version. Perhaps there was a good reason.


Levente

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


More information about the Squeak-dev mailing list