[Bordeaux-threads-devel] binding output stream in thread for slime use
Tobias C Rittweiler
tcr at freebits.de
Thu Dec 30 12:48:10 UTC 2010
In article <4D0348A3.2000105 at gmail.com>,
Antony <lisp.linux at gmail.com> wrote:
> Hi
>
> I am trying to use bordeaux threads.
> Trying to figure out how to make output from a thread function appear in
> slime instead of the lisp terminal.
> The lisp I am using is
> Clozure Common Lisp Version 1.6-r14468M (WindowsX8664)
>
> I beleive I have the latest bordeaux threads
>
> Following is my test code. I hope the intentions are clear.
>
> What am I doing wrong or missing?
>
> Code follows
> Thanks,
> -Antony
>
> (asdf:oos 'asdf:load-op :bordeaux-threads)
>
> (format t "~%appearing in slime")
>
> (defun thread-test ()
> (format t "~%appearing in lisp terminal: ~A"
> (bordeaux-threads:thread-name
> (bordeaux-threads:current-thread))))
>
> (let ((bindings
> '((*standard-input* . *standard-input*)
> (*standard-output* . *standard-output*)
> (*query-io* . *query-io*)
> (*trace-output* . *trace-output*)))) ;;is this correct?
> (dolist (name '("foo" "bar"))
> (bordeaux-threads:make-thread #'thread-test
> :name name
> :initial-bindings bindings)))
You can place
(setq swank:*globally-redirect-io* t)
into your ~/.swank.lisp to globally install the slime repl streams,
so all output will show up in your *slime-repl ...* buffer.
Another way, next to what Vladimir said, is to use
(define-symbol-macro *repl-stream*
(swank::connection.user-output (swank::default-connection)))
I'd say this question would have been more appropriate
on slime-devel. :-)
Anyway, hth,
-T.
More information about the bordeaux-threads-devel
mailing list