<div class="gmail_quote">On Wed, Feb 4, 2009 at 5:51 PM, Lukas Renggli <span dir="ltr"><<a href="mailto:renggli@gmail.com">renggli@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">
> It's related<br>
> to using an exception to abort the callback after suspending it with #call:<br>
> (which we currently do with a partial continuation). #call: is using<br>
> continuations anyway. Why does it need to use an exception together with a<br>
> continuation to do its job?<br>
<br>
</div>Not necessarily, it could also terminate without unwinding up to the<br>
marker and raise the exception there.<br>
<div class="Ih2E3d"></div></blockquote><div><br>Sure, that's fine. That's the behaviour I want; I was just trying to use the existing mechanism we've already defined to accomplish it. But certainly you could unwind more directly instead and I guess that's clearer.<br>
<br></div>So maybe we can take a step back and look at
this from another angle. Forget I ever mentioned that I wanted ensure
blocks to work. Let's just say for a minute that we're in agreement
that they can't possibly work and we're instructing users never to put
ensure blocks in a callback. Can we then agree that semantically it
does not make sense to unwind a callback's contexts when doing a #call:?<br>
<br>
This is the most relevant piece of the discussion to me. When you call,
your callback is conceptually immediately suspended. I think we
should be terminating back to the framework code and then signaling a
Notification rather than unwinding the callback.<br>
<br>
Julian</div>