Helmut Eller e9626484@stud3.tuwien.ac.at writes:
This is a proof of concept, to see if our own REPL is actually better than the (not-so-) inferior-lisp mode.
So far I'm hooked! And I see you've already fixed most of the things mentioned in your last mail.
I hacked in some other little things, like a `slime-lisp-package' variable that roughly tracks *PACKAGE* and is used for the repl's package, so you can do (in-package ...) etc.
There are also problems with output buffering, e.g., when you evaluate (labels ((foo () (foo) t)) (foo)) in the listener, CMUCL puts you in the (tty-) debugger, but you can't see it because the output is buffered somewhere.
It looks like things are getting buffered in the slime-output-stream. I added an extra `force-output' call (before completing an evaluation request) to help, but it's easy to reproduce this problem with "(loop (format t "Hello~%") (sleep 1))" in the REPL. Possibly something to do with inheriting `string-output-stream' buffering semantics? I haven't grokked the stream code.
It feels really good to have the REPL to me. Features-wise I think we've got enough for a respectable 1.0 release. Just the small matter of filling in the details and tidying up :-)
Cheers, Luke