<div dir="ltr">I think it would be more than helpful but on the other hand some new users could say that the shell is buggy because it crashes and restarts for no good reason...</div><div class="gmail_extra"><br><div class="gmail_quote">2017-04-10 6:48 GMT+02:00 Richard A. O'Keefe <span dir="ltr"><<a href="mailto:ok@cs.otago.ac.nz" target="_blank">ok@cs.otago.ac.nz</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Reflecting on this, I know *I* was surprised the first time I<br>
realised that exceptions crashed and restarted the shell.<br>
One reason it was surprising was that<br>
1> X = 1.<br>
1<br>
2> Y.<br>
* 1: variable 'Y' is unbound<br>
3> error(goo).<br>
** exception error: goo<br>
4> X.<br>
1<br>
5> Y = self().<br>
<0.37.0><br>
6> error(cthu).<br>
** exception error: cthu<br>
7> {Y, self()}.<br>
{<0.37.0>,<0.41.0>}<br>
<br>
so that "ports and ETS tables as well as processes linked to<br>
the evaluator process" don't "survive the exception" in<br>
contrast to variable bindings, which visibly DO survive.<br>
<br>
The case of Y is particularly confusing.<br>
<br>
Would it help if restarted shells printed a message<br>
"Shell restarted: associated ports, ETS tables, and links lost."<br>
?<br>
<br>
<br>
</blockquote></div><br></div>