[Apologies, if this hit the list twice.]
There seems to be some SLIME interaction between SBCL's
SB-EXT:RUN-PROGRAM and *STANDARD-OUTPUT*. Consider this:
(defun test (stream)
(let* ((p (sb-ext:run-program "tr" '("a-z" "n-za-m")
:input :stream
:output stream
:search t
:wait nil))
(in (sb-ext:process-input p)))
(format in "test~%")
(sb-ext:process-close p)
(sb-ext:process-wait p)))
Executing (TEST T) causes the output go to emacs' *inferior-lisp*
buffer, with (TEST *STANDARD-OUTPUT*) it goes to SLIME's REPL buffer,
although they should behave the same, AFAICT.
GNU Emacs 21.3.50.1
SLIME CVS-2004/08/13
SBCL 0.8.13
(I understand that this could just as well be an SBCL issue.)
Now, why this function hangs after executing is another thing which I
haven't figured out yet, but this is likely due to wrong use...
Cheers,
Michael