If calling a function such as
(defun test-function () (loop for i from 1 to 10 do (format t "~a~%" i) (sleep 1)))
in the repl, I get a whole lot of nothing, and then after ten seconds, I get the output.
Which is natural, because the output stream is buffering.
So the obvious (*ahem*) thing to do is:
(setf (slot-value (slot-value (slot-value *terminal-io* 'system::output-stream) 'stream::buffer-state) 'stream::output-limit) 1)
which fixes the problem. But surely this isn't supposed to be necessary.
(This is with LispWorks 4.2.7 and current CVS Slime.)