[squeak-dev] The Trunk: System-mt.1093.mcz

Marcel Taeumel marcel.taeumel at hpi.de
Tue Oct 29 14:10:32 UTC 2019


> Since this is called only once to fourteen times per frame (see DamageRecorder) ...

Sorry for that slip. The role of DamageRecorder comes into play only *after* the error handler. So this is only called once per frame.

Best,
Marcel
Am 29.10.2019 15:07:42 schrieb Marcel Taeumel <marcel.taeumel at hpi.de>:
Hi Christoph.

> However, currently, a #deprecated call in a drawing method makes the image unusable ...

Yes, there is a lot of room for improvement in Squeak's strategy to keep the image alive and in a recoverable state. Annoying things include errors in event handlers (such as #mouseOver:) and the thing about Warnings you mentioned for #displayWorldSafely.

Since the exception mechanism can be used to implement dynamic scope (see CurrentReadOnlySourceFiles), we should never catch Exception in general to install such handlers.

Warning might be a nice addition to #displayWorldSafely.

[Error] bench '219,000,000 per second. 4.57 nanoseconds per run.'
[Error, Halt] bench '11,900,000 per second. 84.4 nanoseconds per run.'
[Error, Halt, Warning] bench '9,910,000 per second. 101 nanoseconds per run.'

Since this is called only once to fourteen times per frame (see DamageRecorder) -- but usually only once -- we are good with 100 nanoseconds, given that 60 frames-per-second translate to 16 666 667 nanoseconds per frame.

Best,
Marcel
Am 25.10.2019 20:46:52 schrieb Thiede, Christoph <christoph.thiede at student.hpi.uni-potsdam.de>:
I see, but isn't it just their existence what we want to test for to prevent from loads of Debuggers appearing?
Or should we go the other way around and signal a "DebuggerRaisedNotification" each time before opening a debugger?

However, currently, a #deprecated call in a drawing method makes the image unusable ...
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel
Gesendet: Mittwoch, 23. Oktober 2019 15:48:15
An: John Pfersich via Squeak-dev
Betreff: Re: [squeak-dev] The Trunk: System-mt.1093.mcz
 
> Why isn't it sufficient to test for UnhandledError instead? Otherwise, we would also need to test for Warning etc. ...

UnhandledError and UnhandledWarning are (private) implementation details of Squeak's exception handling mechanism. They should never be exposed to (or used by) applications/frameworks.

Best,
Marcel
Am 22.10.2019 18:50:59 schrieb Thiede, Christoph <christoph.thiede at student.hpi.uni-potsdam.de>:
Why isn't it sufficient to test for UnhandledError instead? Otherwise, we would also need to test for Warning etc. ...
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel
Gesendet: Dienstag, 15. Oktober 2019 13:18:26
An: gettimothy via Squeak-dev
Betreff: Re: [squeak-dev] The Trunk: System-mt.1093.mcz
 
Yeah, I wonder whether we should expand "Error" to "Error, Halt"?

Best,
Marcel
Am 15.10.2019 12:45:42 schrieb Balázs Kósi <rebmekop at gmail.com>:
Hi Hannes!

This morning I've just run into this exact same situation: putting a halt into a method, called by a morph's #drawOn:
makes the image unusable.


The problem stems from WorldState >> displayWorldSafely: being safe only for Errors and not for other kind of
Exceptions, and Halt being only an Exception not an Error.


For a quick fix add Halt to the handled exceptions in #displayWorldSafely:
[aWorld displayWorld. finished := true] on: Error, Halt do: [:ex |
Balázs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20191029/4c1c2890/attachment.html>


More information about the Squeak-dev mailing list