Squeak Exception Handling?

Andreas Raab raab at isgnw.cs.Uni-Magdeburg.DE
Fri Jul 24 22:03:01 UTC 1998


John,

> It's been a while since I looked into this, but I believe
> that Squeak lacks some critical VM support for unwind blocks.

I entirely disagree. The only critical point is detecting non-local
returns through the ensured block and given that there is a working
exception system this is quite possible by simply breaking the sender
of the ensured context. If this is detected correctly by the VM then
BlockContext>>cannotReturn: will be activated leading to an exception
which can itself be handled by executing of the unwind block and returning
control to the original point of execution.

The Jitter VM already detects these broken senders of blocks correctly and
for the bytecode interpreter this is a two line fix. BTW, my own attempt
to exception used exactly this scheme. Yes, it is sort of a hack but it
works and there is no need at all for larger changes to the VM.

  Andreas
-- 
Linear algebra is your friend - Trigonometry is your enemy.
+===== Andreas Raab ============= (raab at isg.cs.uni-magdeburg.de) =====+
I Department of Simulation and Graphics      Phone: +49 391 671 8065  I
I University of Magdeburg, Germany           Fax:   +49 391 671 1164  I
+=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+





More information about the Squeak-dev mailing list