It is not a difficult change to the code I saw to get this to always work. FWIW. <span></span><br><br>On Saturday, April 5, 2014, Greg Hendershott <<a href="mailto:greghendershott@gmail.com">greghendershott@gmail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> What if you do this:<br>
><br>
> (let l () (with-handlers ([void (l)]) (l)))<br>
><br>
> This catches `exn:break` (and everything else) and calls `l`.<br>
<br>
Then I would type C-c C-k yes to kill the buffer. :)<br>
<br>
And then I would re-read the documentation for `with-handlers`, which<br>
recommends not to do that. :)<br>
<br>
Seriously:<br>
<br>
> Robby's answers in this thread are about exactly that -- DrRacket is<br>
> very robust against bad behavior by user programs. The "Programming<br>
> Languages as Operating Systems" paper is about exactly these<br>
> questions.<br>
<br>
Yes, and it's impressive, and I'm relieved that I don't need to go to<br>
those lengths.<br>
<br>
As Spencer pointed out, the spirit of this is more like xrepl. In<br>
fact, I could probably just use xrepl if it had a ,run command like<br>
this (as an alternative to ,enter). (If I can ever sort this out<br>
cleanly enough to do so, I'll submit a PR to add that.)<br>
</blockquote>