On 01/26/2014 03:19 PM, João Távora wrote:
Paul Bowyer pbowyer@olynet.com writes:
Do I have some configuration issues, or is there some reason I can no longer use the *inferior-lisp* buffer for direct entry of lisp commands?
Hi Paul,
I still can't reproduce. To be sure, let's agree on the test case
(setq inferior-lisp-program "sbcl") (add-to-list 'load-path "/path/to/slime") (require 'slime-autoloads) (setq slime-contribs '(slime-fancy)) ;; or do you have slime-repl? M-x slime switch to *inferior lisp* buffer type (sb-ext:describe-compiler-policy) and RET
I'm doing this with emacs 23 and everything works as expected. Are you using the very latest slime? Some days ago I fixed some failing repl tests.
That said, my best bet is that some strange interaction might be trying to overwrite the REPL prompt in slime-repl.el, which has been recently marked as read-only.
Maybe this fix is in order, It simply binds inhibit-read-only to nil around slime-repl-emit's activities.
But I would like to reproduce before I push it.
diff --git a/contrib/slime-repl.el b/contrib/slime-repl.el index 2d74e94..77bc0eb 100644 --- a/contrib/slime-repl.el +++ b/contrib/slime-repl.el @@ -262,22 +262,23 @@ This is set to nil after displaying the buffer.")
(defun slime-repl-emit (string) ;; insert the string STRING in the output buffer
- (with-current-buffer (slime-output-buffer)
- (save-excursion
(goto-char slime-output-end)
(slime-save-marker slime-output-start
(slime-propertize-region '(face slime-repl-output-face
slime-repl-output t
rear-nonsticky (face))
(insert-before-markers string)
(when (and (= (point) slime-repl-prompt-start-mark)
(not (bolp)))
(insert-before-markers "\n")
(set-marker slime-output-end (1- (point)))))))
- (when slime-repl-popup-on-output
(setq slime-repl-popup-on-output nil)
(display-buffer (current-buffer)))
- (slime-repl-show-maximum-output)))
(let ((inhibit-read-only t))
(with-current-buffer (slime-output-buffer)
(save-excursion
(goto-char slime-output-end)
(slime-save-marker slime-output-start
(slime-propertize-region '(face slime-repl-output-face
slime-repl-output t
rear-nonsticky (face))
(insert-before-markers string)
(when (and (= (point) slime-repl-prompt-start-mark)
(not (bolp)))
(insert-before-markers "\n")
(set-marker slime-output-end (1- (point)))))))
(when slime-repl-popup-on-output
(setq slime-repl-popup-on-output nil)
(display-buffer (current-buffer)))
(slime-repl-show-maximum-output))))
(defun slime-repl-emit-result (string &optional bol) ;; insert STRING and mark it as evaluation result
Hi João,
I tried exactly what you said and when I entered (sb-ext:describe-compiler-policy) in the *inferior lisp* buffer, the output from that command showed up in the REPL, not in the *inferior lisp* buffer where I thought it should go. Also, I can no longer clear the *inferior lisp* buffer by selecting everything and pressing the Delete key, which I was able to do with my original .emacs file.
My Emacs is a package that comes with Linux Mint 14 and looks like it originated with Debian. The startup page shows: "This is GNU Emacs 23.4.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.12) of 2012-09-22 on allspice, modified by Debian" There might be something non-standard about my Emacs-23 package... I also have Emacs-24-something available, but I'm semi-familiar with Emacs-23 so I stay with it rather than relearning the idiosyncrasies of Emacs-24.
There must be something going on with my original .emacs file that was causing the problem with the error messages. Rather than having you look at it, I'll fiddle with it using what you sent as the starting point and add things a little at a time to see where the error occurs.
Thanks,
Paul Bowyer