<html><head></head><body>
<p>Hi Jakob,</p>
<p>I changed my code a little bit to open a Debugger. Yet I still
have two issues.<br/>
</p>
<div class="moz-cite-prefix">On 6/21/20 5:53 PM, Robert Withers
wrote:<br/>
</div>
<blockquote type="cite" cite="mid:b92c0061-5bfd-d008-5339-b77ca4f353fa@pm.me">
<p>You can load the following and run the tests.</p>
<blockquote>
<p>Installer ss project: 'Cryptography'; install:
'PromisesLocal'.</p>
</blockquote>
</blockquote>
<p>The latest PromisesLocal-rww.2.mcz has the changes. You can load
with the above Installer doIt. <br/>
</p>
<blockquote type="cite" cite="mid:b92c0061-5bfd-d008-5339-b77ca4f353fa@pm.me">I got a
little lost in capturing exceptions, within the Vat's event loop
#processSends. I have tickled my implementation a little to try
and get the Vat event thread to throw an exception, which presents
a Debugger. I have been unable to pop up the Debugger on the
error, but the promise does get smashed.</blockquote>
<p>I removed catch-all error handling from the
PriorityVat>>#processSends. I then added to the error
handling in EventualMessageSend>>#value to open a debugger
after smashing the resolver.
</p>
<blockquote>
<p>value<br/>
<br/>
| value |<br/>
[value := receiver<br/>
perform: selector <br/>
withArguments: (self collectArguments: arguments)<br/>
inSuperclass: receiver class.<br/>
self resolver notNil <br/>
ifTrue: [ self resolver resolve: value ] ]<br/>
on: Exception<br/>
do: [:ex |<br/>
self resolver notNil <br/>
ifTrue: [self resolver smash: ex].<br/>
<b>Processor activeProcess signalException: ex</b>].</p>
</blockquote>
<p>I have a couple of issues with this:</p>
<ol>
<li>When I close the debugger, the EventualProcess with the stack
that ended up in this exception is terminated. I would need this
process to restart and continue, after clearing the stack from
this exception. I am unsure how to make that happen. Any
suggestions are MOST WELCOME!<br/>
</li>
<li>The stack in the Debugger is not opened on the stack frame
that causes the failure. I would like to rewind the stack to the
bolded line, where the exception is produced, in this case it
would be the method: <b>ZeroDivide(Exception)>>signal</b>.
Is this not where the Debugger should be opened? Again, I am
unsure how to do this and all suggestions are MOST WELCOME!</li>
</ol>
<blockquote>
<blockquote>
<p>--- The full stack ---<br/>
EventualProcess(Process)>>signalException:<br/>
[] in EventualMessageSend>>value<br/>
FullBlockClosure(BlockClosure)>>cull:<br/>
[] in Context>>handleSignal:<br/>
FullBlockClosure(BlockClosure)>>ensure:<br/>
Context>>handleSignal:<br/>
<b>ZeroDivide(Exception)>>signal</b><br/>
SmallInteger>>/<br/>
[] in EventualMessageSend>>value<br/>
FullBlockClosure(BlockClosure)>>on:do:<br/>
EventualMessageSend>>value<br/>
PriorityVat>>processSends<br/>
[] in EventualProcess>>setupContext</p>
</blockquote>
</blockquote>
<p><br/>
</p>
Kindly,<br/>
Rabbit<br/>
<blockquote>
</blockquote>
</body></html>