reconnecting and *GLOBALLY-REDIRECT-IO*
Pascal J. Bourguignon
pjb at informatimago.com
Mon Nov 23 00:56:33 UTC 2015
mega at retes.hu (Gábor Melis) writes:
> Hi
>
> If I connect to a swank server starting simply with:
>
> (require :swank)
> (swank:create-server :port 4095 :dont-close t)
>
> and evaluate an output producing form such as:
>
> (loop
> (format t "~S~%" *standard-output*)
> (sleep 2))
>
> then the output is printed to the repl, but after disconnecting and
> connecting again the output no longer makes it there. This is seemingly
> regardless of the value of *GLOBALLY-REDIRECT-IO* (set in ~/.swank.lisp)
> which is contradicting the documentation at
>
> https://common-lisp.net/project/slime/doc/html/Global-IO-Redirection.html
>
> Is there a way to get standard streams redirected to the new repl upon
> reconnect?
AFAIK, there's no global variable holding the slime streams. They're
bound to in local lexical variables.
Is the looping thread still running after disconnecting? I would expect
it to be killed by the disconnection.
If *standard-output* wasn't the slime stream itself, but a CL
redirecting stream, I don't know that CL implementations block threads
trying to do I/O on them until the base thread is again available for
I/O.
I'm not saying that what you want is impossible, just that it'd require
more sophisticated (and more interesting to implement) mechanisms than
currently available.
--
__Pascal Bourguignon__ http://www.informatimago.com/
“The factory of the future will have only two employees, a man and a
dog. The man will be there to feed the dog. The dog will be there to
keep the man from touching the equipment.” -- Carl Bass CEO Autodesk
More information about the slime-devel
mailing list