[squeak-dev] The Inbox: Kernel-jar.1399.mcz

commits at source.squeak.org commits at source.squeak.org
Sun May 2 13:12:41 UTC 2021

A new version of Kernel was added to project The Inbox:

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

Name: Kernel-jar.1399
Author: jar
Time: 2 May 2021, 3:12:37.830089 pm
UUID: d288b516-c6f1-ce43-9061-2220422b8ab4
Ancestors: Kernel-jar.1398

Fix inconsistent implementation of an explicit and an implicit exception return.

I'd like to return to my original proposal in http://forum.world.st/The-Inbox-Kernel-nice-1391-mcz-tp5129040p5129084.html. The problem then was a bug in #outer that confused me. The bug has been fixed and the original proposal in my opinion makes sense again - to unify how the two kinds of exception return are implemented. Theoretically it's possible to change the #return definition in the future and then the two returns would diverge.

=============== Diff against Kernel-jar.1398 ===============

Item was changed:
  ----- Method: Context>>handleSignal: (in category 'private-exceptions') -----
  handleSignal: exception
  	"Sent to handler (on:do:) contexts only.
  	Execute the handler action block"
  	| val |
  	<primitive: 199>  "just a marker, fail and execute the following"
  	exception privHandlerContext: self contextTag.
  	self deactivateHandler. "Prevent re-entering the action block, unless it is explicitely rearmed"
  	val := [self fireHandlerActionForSignal: exception] ensure: [self reactivateHandler].
+ 	exception return: val  "return from exception handlerContext if not otherwise directed in handle block"!
- 	self return: val  "return from self if not otherwise directed in handle block"!

More information about the Squeak-dev mailing list