I am on the bleeding edge of everything here: SLIME and CMUCL built out of CVS repositories, GNU Emacs 23.1.1.
A few months ago, SLIME and CMUCL stopped functioning for me in any acceptable way. I vaguely correlate this to my switching from GNU Emacs 22 to 23, but can't be sure that the Emacs upgrade was indeed the deciding factor.
I kept hoping that some upgrade of something would fix the situation but this hasn't happened.
I see these three issues now:
* SLIME' responsiveness is poor. It used to do the evaluation and print results instantly, now with a noticeable delay.
Which may be explained by the next item.
* On every evaluation I see a message like this:
Unexpected reply: ### (:ok "/xxx/")
* The above two issues are an annoyance, even if not a small one.
The real issue is that a failure to evaluate some Lisp expression results in a connection abort.
Below is a small demo -- the trimmed contents of various buffers.
Can anybody help me find the way out of my misery?
Thanks in advance.
============================================================ ---------------------------------------- try.lisp -------------------- (print (+ 1 0)) (print (/ 1 0))
---------------------------------------- *slime-repl cmucl* -------------------- ; SLIME 2010-04-12 1 CL-USER>
---------------------------------------- *Messages* -------------------- Connecting to Swank on port 31964.. [2 times] Wrote /xxx/try.lisp error in process filter: slime-dispatch-event: Unexpected reply: 24 (:ok "/xxx/") error in process filter: Unexpected reply: 24 (:ok "/xxx/") Evaluation aborted. Error during redisplay: (error Connection closed.) [2 times] Lisp connection closed unexpectedly: connection broken by remote peer
---------------------------------------- *inferior-lisp* -------------------- (progn (load "/app/lisp/slime/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.22110" :coding-system "utf-8-unix"))
CMU Common Lisp 2010-04-06 (20A Unicode), running on myhost With core: /app/lisp/cmucl/2010-04-06/lib/cmucl/lib/lisp-sse2.core Dumped on: Tue, 2010-04-06 18:18:50-04:00 on otherhost See http://www.cons.org/cmucl/ for support information. Loaded subsystems: Unicode 1.7 with Unicode version 5.1.0 Python 1.1, target Intel x86/sse2 CLOS based on Gerd's PCL 2010-03-19 15:19:03 * Warning: These Swank interfaces are unimplemented: (FRAME-CALL RESTART-FRAME SLDB-STEP-INTO SLDB-STEP-NEXT SLDB-STEP-OUT) ;; Swank started at port: 31964. 31964 * ; Comment: $Header: /project/cmucl/cvsroot/src/pcl/simple-streams/external-formats/utf-8.lisp,v 1.5 2009-09-28 18:12:59 rtoy Exp $
; Compiling DEFINE-EXTERNAL-FORMAT UTF-8: ; Compiling DEFINE-EXTERNAL-FORMAT UTF-8: ; Byte Compiling Top-Level Form:
;; swank:close-connection: Arithmetic error DIVISION-BY-ZERO signalled. Operation was KERNEL::DIVISION, operands (1 0). ;; Event history start: invoke-or-queue-interrupt: #<Closure Over Function "DEFUN PROCESS-IO-INTERRUPT" {48442239}> wait-for-event: (COMMON-LISP:OR (:EMACS-REX . SWANK::_) (:EMACS-CHANNEL-SEND . SWANK::_)) T READ: "(:emacs-rex (swank:autodoc (quote ("print" ("/" "1" "0") swank::%cursor-marker%)) :print-right-margin 80) "COMMON-LISP-USER" t 23) " dispatch-event: (:EMACS-REX (SWANK:AUTODOC (QUOTE ("print" ("/" "1" "0") SWANK::%CURSOR-MARKER%)) :PRINT-RIGHT-MARGIN 80) "COMMON-LISP-USER" T 23) send-event: #<Process Initial {48B7F79D}> (:EMACS-REX (SWANK:AUTODOC (QUOTE ("print" ("/" "1" "0") SWANK::%CURSOR-MARKER%)) :PRINT-RIGHT-MARGIN 80) "COMMON-LISP-USER" 23) dispatch-event: (:RETURN #<Process Initial {48B7F79D}> (:OK "(print ===> object <=== &optional stream)") 23) WRITE: (:return (:ok "(print ===> object <=== &optional stream)") 23) wait-for-event: (COMMON-LISP:OR (:EMACS-REX . SWANK::_) (:EMACS-CHANNEL-SEND . SWANK::_)) T process-io-interrupt 0 ... done process-io-interrupt 0 ... invoke-or-queue-interrupt: #<Closure Over Function "DEFUN PROCESS-IO-INTERRUPT" {4844D969}> wait-for-event: (COMMON-LISP:OR (:EMACS-REX . SWANK::_) (:EMACS-CHANNEL-SEND . SWANK::_)) T process-io-interrupt 0 ... done process-io-interrupt 0 ... invoke-or-queue-interrupt: #<Closure Over Function "DEFUN PROCESS-IO-INTERRUPT" {48454FD9}> wait-for-event: (COMMON-LISP:OR (:EMACS-REX . SWANK::_) (:EMACS-CHANNEL-SEND . SWANK::_)) T READ: "(:emacs-rex (swank:set-default-directory "/xxx/") "COMMON-LISP-USER" t 24) " dispatch-event: (:EMACS-REX (SWANK-BACKEND:SET-DEFAULT-DIRECTORY "/xxx/") "COMMON-LISP-USER" T 24) send-event: #<Process Initial {48B7F79D}> (:EMACS-REX (SWANK-BACKEND:SET-DEFAULT-DIRECTORY "/xxx/") "COMMON-LISP-USER" 24) dispatch-event: (:RETURN #<Process Initial {48B7F79D}> (:OK "/xxx/") 24) WRITE: (:return (:ok "/xxx/") 24) process-io-interrupt 1 ... invoke-or-queue-interrupt: #<Closure Over Function "DEFUN PROCESS-IO-INTERRUPT" {48460341}> queue-interrupt: #<Closure Over Function "DEFUN PROCESS-IO-INTERRUPT" {48460341}>process-io-interrupt 1 ... done process-io-interrupt 1 ... invoke-or-queue-interrupt: #<Closure Over Function "DEFUN PROCESS-IO-INTERRUPT" {4846DE99}> too many queued interrupts wait-for-event: (COMMON-LISP:OR (:EMACS-REX . SWANK::_) (:EMACS-CHANNEL-SEND . SWANK::_)) T wait-for-event: (COMMON-LISP:OR (:EMACS-REX . SWANK::_) (:EMACS-CHANNEL-SEND . SWANK::_)) T READ: "(:emacs-rex (swank:interactive-eval-region "(print (+ 1 0)) (print (/ 1 0)) ") "COMMON-LISP-USER" t 25) " dispatch-event: (:EMACS-REX (SWANK:INTERACTIVE-EVAL-REGION "(print (+ 1 0)) (print (/ 1 0)) ") "COMMON-LISP-USER" T 25) send-event: #<Process Initial {48B7F79D}> (:EMACS-REX (SWANK:INTERACTIVE-EVAL-REGION "(print (+ 1 0)) (print (/ 1 0)) ") "COMMON-LISP-USER" 25) dispatch-event: (:WRITE-STRING " 1 ") WRITE: (:write-string " 1 ") dispatch-event: (:RETURN #<Process Initial {48B7F79D}> (:ABORT) 25) WRITE: (:return (:abort) 25) close-connection: Arithmetic error COMMON-LISP:DIVISION-BY-ZERO signalled. Operation was KERNEL::DIVISION, operands (1 0). ... deinstall-sigio-handler... deinstall-sigio-handler...done ;; Event history end. ;; Backtrace: (0 ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGING-ENVIRONMENT) #<Function "DEFUN SAFE-BACKTRACE" {48E55D19}>)) (1 (SWANK::SAFE-BACKTRACE)) (2 ("DEFUN CALL-WITH-CONNECTION" #<SWANK-RPC:SWANK-PROTOCOL-ERROR {48478675}>)) (3 (SIGNAL #<SWANK-RPC:SWANK-PROTOCOL-ERROR {48478675}>)) (4 (ERROR #<SWANK-RPC:SWANK-PROTOCOL-ERROR {48478675}>)) (5 ("DEFUN ENCODE-MESSAGE" #<DIVISION-BY-ZERO {4847824D}>)) (6 (SIGNAL #<DIVISION-BY-ZERO {4847824D}>)) (7 (ERROR DIVISION-BY-ZERO :FUNCTION-NAME KERNEL::INTEGER-/-INTEGER :OPERATION ...)) (8 (KERNEL::DIVISION-BY-ZERO-ERROR-HANDLER KERNEL::INTEGER-/-INTEGER #.(SYSTEM:INT-SAP #x47FD6878) #<Alien (* SYSTEM:SYSTEM-AREA-POINTER) at #x47FD6550> (19 83))) (9 (KERNEL::INTERNAL-ERROR #.(SYSTEM:INT-SAP #x47FD6550) #<unused-arg>)) (10 ("Foreign function call land")) (11 ("Foreign function call land")) (12 ("Foreign function call land")) (13 ("Foreign function call land")) (14 (KERNEL::INTEGER-/-INTEGER 1 0)) (15 (/ 1 0)) (16 (EVAL (PRINT (/ 1 0)))) (17 (SWANK::EVAL-REGION "(print (+ 1 0))\n(print (/ 1 0))\n")) (18 ("DEFSLIMEFUN INTERACTIVE-EVAL-REGION")) (19 (SWANK::CALL-WITH-RETRY-RESTART "Retry SLIME interactive evaluation request." #<Closure Over Function "DEFSLIMEFUN INTERACTIVE-EVAL-REGION" {48476CB9}>)) (20 (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<Closure Over Function "DEFSLIMEFUN INTERACTIVE-EVAL-REGION" {48476CA9}>)) (21 (SWANK::EVAL-FOR-EMACS (SWANK:INTERACTIVE-EVAL-REGION "(print (+ 1 0))\n(print (/ 1 0))\n") "COMMON-LISP-USER" 25)) (22 (SWANK::PROCESS-REQUESTS T)) (23 (SWANK-BACKEND:CHECK-SLIME-INTERRUPTS)) (24 (SWANK::WAIT-FOR-EVENT (OR (:EMACS-REX . SWANK::_) (:EMACS-CHANNEL-SEND . SWANK::_)) T)) (25 (SWANK::PROCESS-REQUESTS T)) (26 (SWANK-BACKEND:CHECK-SLIME-INTERRUPTS)) (27 (SWANK::PROCESS-IO-INTERRUPT #<SWANK::CONNECTION {4862D7D5}>)) (28 (SWANK-BACKEND::SIGIO-HANDLER #<unused-arg> #<unused-arg> #<unused-arg>)) (29 ("Foreign function call land")) (30 ("Foreign function call land")) (31 ("Foreign function call land")) (32 ("Foreign function call land")) (33 (LISP::DO-OUTPUT #<Stream for descriptor 5> #.(SYSTEM:INT-SAP #x281E1000) 0 57 ...)) (34 (LISP::FLUSH-OUTPUT-BUFFER #<Stream for descriptor 5>)) (35 (LISP::FD-STREAM-MISC-ROUTINE #<Stream for descriptor 5> :FINISH-OUTPUT NIL #<unused-arg>)) (36 (FINISH-OUTPUT #<Stream for descriptor 5>)) (37 (SWANK-RPC:ENCODE-MESSAGE (:RETURN (:OK "/xxx/") 24) #<Stream for descriptor 5>)) (38 ((FLET #:G0 SWANK::EVAL-FOR-EMACS))[:CLEANUP]) (39 (SWANK::EVAL-FOR-EMACS (SWANK-BACKEND:SET-DEFAULT-DIRECTORY "/xxx/") "COMMON-LISP-USER" 24)) (40 (SWANK::PROCESS-REQUESTS T)) (41 ("DEFUN HANDLE-REQUESTS")) (42 ("DEFINTERFACE CALL-WITH-DEBUGGER-HOOK" #<Function SWANK:SWANK-DEBUGGER-HOOK {48BE7AA9}> #<Closure Over Function "DEFUN HANDLE-REQUESTS" {4845BB99}>)) (43 (SWANK::CALL-WITH-BINDINGS ((*STANDARD-OUTPUT* . #) (*STANDARD-INPUT* . #) (*TRACE-OUTPUT* . #) (*ERROR-OUTPUT* . #) (*DEBUG-IO* . #<Two-Way Stream, Input = #, Output = #>) ...) ..)) (44 (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {4862D7D5}> #<Closure Over Function "DEFUN HANDLE-REQUESTS" {4845BB99}>)) (45 (SWANK::HANDLE-REQUESTS #<SWANK::CONNECTION {4862D7D5}> T)) (46 (SWANK::INVOKE-OR-QUEUE-INTERRUPT #<Closure Over Function "DEFUN PROCESS-IO-INTERRUPT" {48454FD9}>)) (47 (SWANK::PROCESS-IO-INTERRUPT #<SWANK::CONNECTION {4862D7D5}>)) (48 (SWANK-BACKEND::SIGIO-HANDLER #<unused-arg> #<unused-arg> #<unused-arg>)) (49 ("Foreign function call land")) (50 ("Foreign function call land")) (51 ("Foreign function call land")) (52 ("Foreign function call land")) (53 (SYSTEM:WAIT-UNTIL-FD-USABLE 0 :INPUT NIL)) (54 (LISP::DO-INPUT #<Stream for Standard Input>)) (55 ("PRECOMPILE-EF-SLOT ISO8859-1" #<Stream for Standard Input> NIL (LISP::*EOF*))) (56 (LISP::SYNONYM-IN #<Synonym Stream to SYSTEM:*STDIN*> NIL (LISP::*EOF*))) (57 (LISP::TWO-WAY-IN #<Two-Way Stream, Input = #<Synonym Stream to SYSTEM:*STDIN*>, Output = #<Synonym Stream to SYSTEM:*STDOUT*>> NIL (LISP::*EOF*))) (58 (READ-CHAR #<Two-Way Stream, Input = #<Synonym Stream to SYSTEM:*STDIN*>, Output = #<Synonym Stream to SYSTEM:*STDOUT*>> NIL (LISP::*EOF*) NIL)) (59 (LISP::READ-PRESERVING-WHITESPACE-INTERNAL #<Two-Way Stream, Input = #<Synonym Stream to SYSTEM:*STDIN*>, Output = #<Synonym Stream to SYSTEM:*STDOUT*>> NIL (:EOF) T)) (60 (LISP::READ-PRESERVING-WHITESPACE-INTERNAL #<Two-Way Stream, Input = #<Synonym Stream to SYSTEM:*STDIN*>, Output = #<Synonym Stream to SYSTEM:*STDOUT*>> NIL (:EOF) NIL)) (61 (LISP::READ-PRESERVING-WHITESPACE-INTERNAL 4 #<Two-Way Stream, Input = #<Synonym Stream to SYSTEM:*STDIN*>, Output = #<Synonym Stream to SYSTEM:*STDOUT*>> NIL (:EOF) ...)[:EXTERNAL]) (62 (LISP::READ-INTERNAL #<Two-Way Stream, Input = #<Synonym Stream to SYSTEM:*STDIN*>, Output = #<Synonym Stream to SYSTEM:*STDOUT*>> NIL (:EOF) NIL)) (63 (READ #<Two-Way Stream, Input = #<Synonym Stream to SYSTEM:*STDIN*>, Output = #<Synonym Stream to SYSTEM:*STDOUT*>> NIL (:EOF) NIL)) (64 (LISP::%TOP-LEVEL)) (65 ((LABELS LISP::RESTART-LISP SAVE-LISP))) ;; Connection to Emacs lost. [ ;; condition: Arithmetic error DIVISION-BY-ZERO signalled. Operation was KERNEL::DIVISION, operands (1 0). ;; type: DIVISION-BY-ZERO ;; encoding: utf-8-unix vs. UTF-8 ;; style: :SIGIO dedicated: NIL]
---------------------------------------- *slime-events* --------------------
(:emacs-rex (swank:connection-info) "COMMON-LISP-USER" t 1) (:indentation-update (("with-host" . 1) ("with-read-buffer" . 1) ("enumerate-matches" . 1) ("defloader" . 2) ("prepare-for-fast-read-char" . 1) ("input-wrapper" . 1) ("output-wrapper" . 1) ("with-symbol" . 1) ("def-output-routines" . 1) ("maybe-sap-maybe-string" . 1) ("with-pathname" . 1) ("with-fop-stack" . 1) ("prepare-for-fast-read-byte" . 1) ("define-function-name-syntax" . 2) ("with-float-traps-masked" . 1) ("without-package-locks" . 0) ("def-source-context" . 2) ("enumerate-search-list" . 1) ("do-info" . 1) ("with-c-strvec" . 1) ...)) (:return (:ok (:pid 22130 :style :sigio :encoding (:coding-system "utf-8-unix" :external-format "UTF-8") :lisp-implementation (:type "CMU Common Lisp" :name "cmucl" :version "2010-04-06 (20A Unicode)" :program "/app/lisp/cmucl/2010-04-06/bin/lisp") :machine (:instance "myhost" :type "X86" :version "X86") :features (:cl-ppcre :split-sequence :asdf :gerds-pcl :pcl-structures :portable-commonloops :pcl :cmu20 :cmu20a :python :conservative-float-type :modular-arith :mp :x86 :sse2 :linkage-table :relative-package-names :executable :elf :freebsd ...) :modules ("ASDF" "LOOP") :package (:name "COMMON-LISP-USER" :prompt "CL-USER") :version "2010-04-12")) 1) (:emacs-rex (swank:swank-require '(:swank-package-fu :swank-presentations :swank-fuzzy :swank-fancy-inspector :swank-c-p-c :swank-arglists)) "COMMON-LISP-USER" t 2) (:return (:ok ("SWANK-ARGLISTS" "SWANK-FANCY-INSPECTOR" "SWANK-FUZZY" "SWANK-C-P-C" "SWANK-PRESENTATIONS" "SWANK-PACKAGE-FU" "ASDF" "LOOP")) 2) (:emacs-rex (swank:create-repl nil) "COMMON-LISP-USER" t 3) (:return (:ok ("COMMON-LISP-USER" "CL-USER")) 3) (:emacs-rex (swank:buffer-first-change "/xxx/try.lisp") "COMMON-LISP-USER" t 4) (:return (:ok nil) 4) (:emacs-rex (swank:autodoc '("foir" swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 5) (:return (:ok :not-available) 5) (:emacs-rex (swank:autodoc '("for" swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 6) (:return (:ok :not-available) 6) (:emacs-rex (swank:autodoc '("forma" swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 7) (:return (:ok :not-available) 7) (:emacs-rex (swank:autodoc '("format" "" swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 8) (:return (:ok "(format ===> destination <=== control-string &rest format-arguments)") 8) (:emacs-rex (swank:autodoc '("print" "" swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 9) (:return (:ok "(print ===> object <=== &optional stream)") 9) (:emacs-rex (swank:autodoc '("print" ("" swank::%cursor-marker%)) :print-right-margin 80) "COMMON-LISP-USER" t 10) (:return (:ok "(print ===> object <=== &optional stream)") 10) (:emacs-rex (swank:autodoc '("print" ("+" swank::%cursor-marker%)) :print-right-margin 80) "COMMON-LISP-USER" t 11) (:return (:ok "+ => (PROGN ..)") 11) (:emacs-rex (swank:autodoc '("print" ("+" "" swank::%cursor-marker%)) :print-right-margin 80) "COMMON-LISP-USER" t 12) (:return (:ok "(+ &rest ===> args <===)") 12) (:emacs-rex (swank:autodoc '("print" ("+" "1" swank::%cursor-marker%)) :print-right-margin 80) "COMMON-LISP-USER" t 13) (:return (:ok "(+ &rest ===> args <===)") 13) (:emacs-rex (swank:autodoc '("print" ("+" "1" "" swank::%cursor-marker%)) :print-right-margin 80) "COMMON-LISP-USER" t 14) (:return (:ok "(+ &rest ===> args <===)") 14) (:emacs-rex (swank:autodoc '("print" ("+" "1" "0" swank::%cursor-marker%)) :print-right-margin 80) "COMMON-LISP-USER" t 15) (:return (:ok "(+ &rest ===> args <===)") 15) (:emacs-rex (swank:autodoc '("print" ("+" "1" "0") swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 16) (:return (:ok "(print ===> object <=== &optional stream)") 16) (:emacs-rex (swank:autodoc '(("/" "1" "0") swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 17) (:return (:ok :not-available) 17) (:emacs-rex (swank:autodoc '("ri" ("/" "1" "0") swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 18) (:return (:ok :not-available) 18) (:emacs-rex (swank:autodoc '("rint" ("/" "1" "0") swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 19) (:return (:ok :not-available) 19) (:emacs-rex (swank:autodoc '("r" ("/" "1" "0") swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 20) (:return (:ok :not-available) 20) (:emacs-rex (swank:autodoc '(("/" "1" "0") swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 21) (:return (:ok :not-available) 21) (:emacs-rex (swank:autodoc '("pring" ("/" "1" "0") swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 22) (:return (:ok :not-available) 22) (:emacs-rex (swank:autodoc '("print" ("/" "1" "0") swank::%cursor-marker%) :print-right-margin 80) "COMMON-LISP-USER" t 23) (:return (:ok "(print ===> object <=== &optional stream)") 23) (:emacs-rex (swank:set-default-directory "/xxx/") "COMMON-LISP-USER" t 24) (:return (:ok "/xxx/") 24) (:emacs-rex (swank:interactive-eval-region "(print (+ 1 0))\n(print (/ 1 0))\n") "COMMON-LISP-USER" t 25) (:return (:ok "/xxx/") 24) (:write-string "\n1 ") (:return (:abort) 25)
---------------------------------------- *scratch* -------------------- (insert (format "\n=>\n%s\n%s" slime-lisp-implementations slime-net-coding-system)) => ((cmucl (/app/lisp/cmucl/2010-04-06/bin/lisp) :coding-system utf-8-unix)) utf-8-unix
============================================================
-- Alex -- alex-goncharov@comcast.net --
Alex Goncharov alex-goncharov@comcast.net writes:
I am on the bleeding edge of everything here: SLIME and CMUCL built out of CVS repositories, GNU Emacs 23.1.1.
A few months ago, SLIME and CMUCL stopped functioning for me in any acceptable way. I vaguely correlate this to my switching from GNU Emacs 22 to 23, but can't be sure that the Emacs upgrade was indeed the deciding factor.
I have #+cmu (setf *communication-style* :spawn) in my ~/.swank.lisp and don't have any problems you're describing.
,--- You/Stas (Wed, 14 Apr 2010 16:31:46 +0400) ----* | I have #+cmu (setf *communication-style* :spawn) in my ~/.swank.lisp and | don't have any problems you're describing.
Thanks.
Just tried it:
============================================================
---------------------------------------- ~/.swank.lisp -------------------- #+cmu (setf *communication-style* :spawn)
---------------------------------------- *inferior-lisp* -------------------- ; Loading #P"/home/.swank.lisp". Warning: Declaring *COMMUNICATION-STYLE* special.
; Connection to Emacs lost. [ ;; condition: Arithmetic error DIVISION-BY-ZERO signalled. Operation was KERNEL::DIVISION, operands (1 0). ;; type: DIVISION-BY-ZERO ;; encoding: utf-8-unix vs. UTF-8 ;; style: :SIGIO dedicated: NIL] ============================================================
I.e.: no luck, sorry :-(
-- Alex -- alex-goncharov@comcast.net --
Alex Goncharov alex-goncharov@comcast.net writes:
,--- You/Stas (Wed, 14 Apr 2010 16:31:46 +0400) ----* | I have #+cmu (setf *communication-style* :spawn) in my ~/.swank.lisp and | don't have any problems you're describing.
Thanks.
Just tried it:
============================================================
~/.swank.lisp
#+cmu (setf *communication-style* :spawn)
*inferior-lisp*
; Loading #P"/home/.swank.lisp". Warning: Declaring *COMMUNICATION-STYLE* special.
; Connection to Emacs lost. [ ;; condition: Arithmetic error DIVISION-BY-ZERO signalled. Operation was KERNEL::DIVISION, operands (1 0). ;; type: DIVISION-BY-ZERO ;; encoding: utf-8-unix vs. UTF-8 ;; style: :SIGIO dedicated: NIL] ============================================================
Any reason you're using CMUCL and not SBCL?
,--- You/Stas (Wed, 14 Apr 2010 18:04:25 +0400) ----* | Any reason you're using CMUCL and not SBCL?
Any reason I should prefer SBCL over CMUCL? :-)
Seriously, I tried it about three years ago, after several years of CMUCLing, and disliked SBCL. Sorry to say this -- a personal preference, can't help it.
If one gives me a serious reason to use SBCL instead of CMUCL, I may well switch, my dislikes not-withstanding.
But for now the question on the table is, what is happening in my setup? I've been a satisfied CMUCL/SLIME user for years and then suddenly these problems came...
-- Alex -- alex-goncharov@comcast.net --
,--- I/Alex (Wed, 14 Apr 2010 10:42:18 -0400) ----* | ,--- You/Stas (Wed, 14 Apr 2010 18:04:25 +0400) ----* | | Any reason you're using CMUCL and not SBCL? | Any reason I should prefer SBCL over CMUCL? :-)
Forgot to mention one more reason for me to use CMUCL: I am a CMUCL contributor/committer :-).
-- Alex -- alex-goncharov@comcast.net --
Am 14.04.2010 09:04, schrieb Alex Goncharov:
,--- I/Alex (Wed, 14 Apr 2010 10:42:18 -0400) ----* | ,--- You/Stas (Wed, 14 Apr 2010 18:04:25 +0400) ----* | | Any reason you're using CMUCL and not SBCL? | Any reason I should prefer SBCL over CMUCL? :-)
Forgot to mention one more reason for me to use CMUCL: I am a CMUCL contributor/committer :-).
-- Alex -- alex-goncharov@comcast.net --
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
You shouldn't need to explain yourself. I use SBCL, yet I understand and appreciate the fact that CMUCL is the reason that SBCL exists. It's fantastic that one can go to at least one college and receive a world-class Lisp education. We all owe a huge debt of gratitude to CMUCL. I'd use it myself, but I need threading. That's the only reason I switched. If someone tells me that CMUCL has threading now, I may switch back.
Carlos
* Alex Goncharov [2010-04-14 14:46+0200] writes:
,--- You/Stas (Wed, 14 Apr 2010 16:31:46 +0400) ----* | I have #+cmu (setf *communication-style* :spawn) in my ~/.swank.lisp and | don't have any problems you're describing.
Yes, there's a problem if to many interrupts are queued. It try to fix that.
Thanks.
Just tried it:
============================================================
~/.swank.lisp
#+cmu (setf *communication-style* :spawn)
*inferior-lisp*
; Loading #P"/home/.swank.lisp". Warning: Declaring *COMMUNICATION-STYLE* special.
Better use qualified symbols: SWANK::*COMMUNICATION-STYLE*.
Helmut
,--- You/Helmut (Wed, 14 Apr 2010 17:17:36 +0200) ----* | * Alex Goncharov [2010-04-14 14:46+0200] writes: | > ,--- You/Stas (Wed, 14 Apr 2010 16:31:46 +0400) ----* | > | I have #+cmu (setf *communication-style* :spawn) in my ~/.swank.lisp and | > | don't have any problems you're describing. | | Yes, there's a problem if to many interrupts are queued. It try to fix | that.
Thanks!
| Better use qualified symbols: SWANK::*COMMUNICATION-STYLE*.
This helped for the (/ 1 0) demo: I now get the *sldb cmucl/1* buffer again.
Is this a necessary directive for CMUCL? If so, doesn't it belong to SLIME code rather than to ~/.swank.lisp?
With that *communication-style*, I still have SLIME problems with the real Lisp code, but the general feeling is much better now.
Thanks a lot!
-- Alex -- alex-goncharov@comcast.net --
* Alex Goncharov [2010-04-14 17:35+0200] writes:
,--- You/Helmut (Wed, 14 Apr 2010 17:17:36 +0200) ----* | * Alex Goncharov [2010-04-14 14:46+0200] writes: | > ,--- You/Stas (Wed, 14 Apr 2010 16:31:46 +0400) ----* | > | I have #+cmu (setf *communication-style* :spawn) in my ~/.swank.lisp and | > | don't have any problems you're describing. | | Yes, there's a problem if to many interrupts are queued. It try to fix | that.
Thanks!
Should be fixed in the CVS version, at it works on Linux.
| Better use qualified symbols: SWANK::*COMMUNICATION-STYLE*.
This helped for the (/ 1 0) demo: I now get the *sldb cmucl/1* buffer again.
Is this a necessary directive for CMUCL? If so, doesn't it belong to SLIME code rather than to ~/.swank.lisp?
Some people have may have apps or some other reason to customize this. The standard setting (SIGIO) should work just fine, though. I use that all the time.
Helmut
,--- You/Helmut (Wed, 14 Apr 2010 23:08:18 +0200) ----* | Should be fixed in the CVS version, at it works on Linux.
I picked it up and confirming that my (/ 1 0) demo is handled correctly now.
A bigger program evaluates fine too, but with the SIGIO communication style the responsiveness is sluggish (and I think I spotted those annoying "(ok.." messages.
| Some people have may have apps or some other reason to customize | this. The standard setting (SIGIO) should work just fine, though. | I use that all the time.
I switched to FD-HANDLER and am getting an all-around good behavior, includinf good responsiveness.
Truly don't like SIGIO :-)
Thank you!
-- Alex -- alex-goncharov@comcast.net --
On 4/13/10 11:05 PM, Alex Goncharov wrote:
I am on the bleeding edge of everything here: SLIME and CMUCL built out of CVS repositories, GNU Emacs 23.1.1.
A few months ago, SLIME and CMUCL stopped functioning for me in any acceptable way. I vaguely correlate this to my switching from GNU Emacs 22 to 23, but can't be sure that the Emacs upgrade was indeed the deciding factor.
Well, I finally decided to try a newer version of slime (was using 2009-08-xx). It seems to work just fine for me with xemacs 21.5.29 and the 2010-04 snapshot of cmucl.
I didn't quite follow what you were doing with try.lisp, but I can C-c C-k and slime works as expected. Evaluating (/ 1 0) in the slime repl instantly pops up sldb as expected.
I guess this isn't really helpful to you since I'm using xemacs and not emacs. Just another data point.
Perhaps you should use :spawn or :fd-handler for swank::*communication-style*? I use :fd-handler.
Ray
On 4/14/10 11:31 AM, Raymond Toy wrote:
On 4/13/10 11:05 PM, Alex Goncharov wrote:
I am on the bleeding edge of everything here: SLIME and CMUCL built out of CVS repositories, GNU Emacs 23.1.1.
A few months ago, SLIME and CMUCL stopped functioning for me in any acceptable way. I vaguely correlate this to my switching from GNU Emacs 22 to 23, but can't be sure that the Emacs upgrade was indeed the deciding factor.
Well, I finally decided to try a newer version of slime (was using 2009-08-xx). It seems to work just fine for me with xemacs 21.5.29 and the 2010-04 snapshot of cmucl.
I think I found one problem. In slime-init-popup-buffer in slime.el, there's a reference to minor-mode-list. This doesn't exist in xemacs; it's called minor-mode-alist. Perhaps that's a typo?
Ray
,--- You/Raymond (Thu, 15 Apr 2010 10:22:25 -0400) ----* | I think I found one problem. In slime-init-popup-buffer in slime.el, | there's a reference to minor-mode-list. This doesn't exist in xemacs; | it's called minor-mode-alist. Perhaps that's a typo?
In GNU Emacs (23.1) these are two distinct variables (and note that one is a "list", the other "alist"):
============================================================ minor-mode-list is a variable defined in `subr.el'. Its value is (... display-time-mode show-paren-mode ... )
Documentation: List of all minor mode functions. ======================================== minor-mode-alist is a variable defined in `bindings.el'.
Documentation: Alist saying how to show minor modes in the mode line. Each element looks like (VARIABLE STRING); STRING is included in the mode line if VARIABLE's value is non-nil.
Actually, STRING need not be a string; any possible mode-line element is okay. See `mode-line-format'.
Value: (... (compilation-minor-mode " Compilation") (compilation-shell-minor-mode " Shell-Compile") (isearch-mode isearch-mode)) ============================================================
-- Alex -- alex-goncharov@comcast.net --
Raymond Toy toy.raymond@gmail.com writes:
On 4/14/10 11:31 AM, Raymond Toy wrote:
On 4/13/10 11:05 PM, Alex Goncharov wrote:
I am on the bleeding edge of everything here: SLIME and CMUCL built out of CVS repositories, GNU Emacs 23.1.1.
A few months ago, SLIME and CMUCL stopped functioning for me in any acceptable way. I vaguely correlate this to my switching from GNU Emacs 22 to 23, but can't be sure that the Emacs upgrade was indeed the deciding factor.
Well, I finally decided to try a newer version of slime (was using 2009-08-xx). It seems to work just fine for me with xemacs 21.5.29 and the 2010-04 snapshot of cmucl.
I think I found one problem. In slime-init-popup-buffer in slime.el, there's a reference to minor-mode-list. This doesn't exist in xemacs; it's called minor-mode-alist. Perhaps that's a typo?
It's not a typo, it's used to determine wether mode is minor or major.
On 4/15/10 10:30 AM, Stas Boukarev wrote:
Raymond Toy toy.raymond@gmail.com writes:
On 4/14/10 11:31 AM, Raymond Toy wrote:
On 4/13/10 11:05 PM, Alex Goncharov wrote:
I am on the bleeding edge of everything here: SLIME and CMUCL built out of CVS repositories, GNU Emacs 23.1.1.
A few months ago, SLIME and CMUCL stopped functioning for me in any acceptable way. I vaguely correlate this to my switching from GNU Emacs 22 to 23, but can't be sure that the Emacs upgrade was indeed the deciding factor.
Well, I finally decided to try a newer version of slime (was using 2009-08-xx). It seems to work just fine for me with xemacs 21.5.29 and the 2010-04 snapshot of cmucl.
I think I found one problem. In slime-init-popup-buffer in slime.el, there's a reference to minor-mode-list. This doesn't exist in xemacs; it's called minor-mode-alist. Perhaps that's a typo?
It's not a typo, it's used to determine wether mode is minor or major.
Oh, ok. I'll have to poke around to see if there's some equivalent for xemacs.
Ray
Raymond Toy toy.raymond@gmail.com writes:
On 4/15/10 10:30 AM, Stas Boukarev wrote:
Raymond Toy toy.raymond@gmail.com writes:
On 4/14/10 11:31 AM, Raymond Toy wrote:
On 4/13/10 11:05 PM, Alex Goncharov wrote:
I am on the bleeding edge of everything here: SLIME and CMUCL built out of CVS repositories, GNU Emacs 23.1.1.
A few months ago, SLIME and CMUCL stopped functioning for me in any acceptable way. I vaguely correlate this to my switching from GNU Emacs 22 to 23, but can't be sure that the Emacs upgrade was indeed the deciding factor.
Well, I finally decided to try a newer version of slime (was using 2009-08-xx). It seems to work just fine for me with xemacs 21.5.29 and the 2010-04 snapshot of cmucl.
I think I found one problem. In slime-init-popup-buffer in slime.el, there's a reference to minor-mode-list. This doesn't exist in xemacs; it's called minor-mode-alist. Perhaps that's a typo?
It's not a typo, it's used to determine wether mode is minor or major.
Oh, ok. I'll have to poke around to see if there's some equivalent for xemacs.
I removed the usage of minor-mode-list, so it should work on XEmacs now.