Also (and again FWIW), I see what you are saying a<span></span>s "the OS is also good at killing things" which is certainly true. You could just do it that way all the time in fact!<div><br></div><div>Robby<br><div>
<br>On Saturday, April 5, 2014, Robby Findler <<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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="javascript:_e(%7B%7D,'cvml','greghendershott@gmail.com');" target="_blank">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>
</blockquote></div></div>