[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