Could you guys please emit your opinion about this request? How do other implementations behave in this respect? Do they all offer an ABORT restart on every thread?<div><br></div><div>Juanjo<br><br><div class="gmail_quote">
---------- Forwarded message ----------<br>From: <b class="gmail_sendername">SourceForge.net</b> <span dir="ltr"><<a href="mailto:noreply@sourceforge.net">noreply@sourceforge.net</a>></span><br>Date: Mon, Jul 2, 2012 at 3:27 PM<br>
Subject: [ ecls-Bugs-3539184 ] ABORT restart does not exist inside threads<br>To: "SourceForge.net" <<a href="mailto:noreply@sourceforge.net">noreply@sourceforge.net</a>><br><br><br>Bugs item #3539184, was opened at 2012-06-30 11:52<br>
Message generated for change (Comment added) made by jjgarcia<br>
You can respond by visiting:<br>
<a href="https://sourceforge.net/tracker/?func=detail&atid=398053&aid=3539184&group_id=30035" target="_blank">https://sourceforge.net/tracker/?func=detail&atid=398053&aid=3539184&group_id=30035</a><br>
<br>
Please note that this message will contain a full copy of the comment thread,<br>
including the initial issue submission, for this request,<br>
not just the latest update.<br>
Category: None<br>
Group: None<br>
Status: Open<br>
Resolution: None<br>
Priority: 5<br>
Private: No<br>
Submitted By: James M. Lawrence ()<br>
Assigned to: Nobody/Anonymous (nobody)<br>
Summary: ABORT restart does not exist inside threads<br>
<br>
Initial Comment:<br>
(mp:process-run-function "test" #'abort)<br>
<br>
=> Restart ABORT is not active.<br>
[Condition of type SI::SIMPLE-CONTROL-ERROR]<br>
<br>
(let ((out *standard-output*))<br>
(mp:process-run-function<br>
"test"<br>
(lambda ()<br>
(print (mapcar #'restart-name (compute-restarts)) out))))<br>
<br>
=> NIL<br>
<br>
Linux xi 3.2.0-24-generic-pae #39-Ubuntu SMP Mon May 21 18:54:21 UTC 2012 i686 i686 i386 GNU/Linux<br>
<br>
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)<br>
<br>
----------------------------------------------------------------------<br>
<br>
>Comment By: Juan Jose Garcia Ripoll (jjgarcia)<br>
Date: 2012-07-02 06:27<br>
<br>
Message:<br>
Hi James I am not denying anything a priori. I just have concerns about the<br>
interference between an addition of an ABORT restart for _every_ thread,<br>
and user-defined code that defines their own restarts. As far as I always<br>
read <a href="http://clhs.lisp.se/Body/r_abort.htm" target="_blank">http://clhs.lisp.se/Body/r_abort.htm</a> the text "innermost ``command<br>
level.'" always resounded to me to refer to the Common Lisp toplevel<br>
(interactive read-execute loop). Threads do not have a toplevel processor<br>
and hence ECL does not set up such a restart. However, if all other<br>
implementations set them up, I have nothing against it. I must consult in<br>
the mailing list, because this is a feature change, not a fix.<br>
<br>
----------------------------------------------------------------------<br>
<br>
Comment By: James M. Lawrence ()<br>
Date: 2012-07-01 15:14<br>
<br>
Message:<br>
I had not considered that you were not intending to add an abort restart.<br>
The standard says that "Implementors are encouraged to make sure that there<br>
is always a restart named abort around any user code so that user code can<br>
call abort at any time..."<br>
<br>
So while it is only an "encouragement", an abort restart is present in all<br>
implementations I have tested against except ECL. It seems only natural to<br>
allow users to abort a calculation. What are they supposed to do inside the<br>
debugger with no restarts, not even abort? In bordeaux-threads killing the<br>
current thread is not permitted.<br>
<br>
The lack of abort is not ultimately a problem for me, just unfortunate. I<br>
have to disable some tests for ECL or compensate with workarounds. And it<br>
is jarring that the 'a' key doesn't work in SLIME, though with motivation<br>
that could be worked around as well.<br>
<br>
----------------------------------------------------------------------<br>
<br>
Comment By: Juan Jose Garcia Ripoll (jjgarcia)<br>
Date: 2012-06-30 13:01<br>
<br>
Message:<br>
There is nothing in the specification that states an ABORT restart should<br>
be set up on every image. Why do you consider this an error?<br>
<br>
----------------------------------------------------------------------<br>
<br>
You can respond by visiting:<br>
<a href="https://sourceforge.net/tracker/?func=detail&atid=398053&aid=3539184&group_id=30035" target="_blank">https://sourceforge.net/tracker/?func=detail&atid=398053&aid=3539184&group_id=30035</a><br>
</div><br><br clear="all"><div><br></div>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a><br>
</div>