Daniel Patru writes:
The following code:
(defun prompt () (do ((line nil (and (listen) (read)))) ((eq line 'q)) (when line (print line)) (print '>) (sleep 5)))
when run in directly in the clisp interpreter in a shell, will output a > every 5 seconds, and print out any symbols entered until q is entered.
when run under slime, only > is printed every 5 seconds, the input is not printed out, instead a message in the minibuffer says: ; pipelined request... (swank:listener-eval "<input>")
Anyway to make this work? (I'm trying to do some processing in between user input.) I'm running clisp 2.34, slime 1.2.1, emacs 21.3.1 and windows xp.
You should have some notion of buffered vs. unbuffered I/O. This is basic CS stuff.
In lisp, this means use: FINISH-OUTPUT.