[slime-devel] Problem with slime-presentations.el (ecase in slime-presentation-write)

When trying to fire up SLIME or submit any forms to the REPL, I see the follow error arise: ,---- | Debugger entered--Lisp error: (error "`t' is not allowed in ecase") | signal(error ("`t' is not allowed in ecase")) | cerror("`%s' is not allowed in ecase" t) | apply(cerror "`%s' is not allowed in ecase" t) | error("`%s' is not allowed in ecase" t) | #<compiled-function (expr &rest clauses) "...(28)" [expr disallowed clauses t otherwise error "`%s' is not allowed in ecase" case append (...)] 6 ("/usr/share/xemacs-21.4.20/lisp/cl-macs.elc" . 9765)>(target ((nil) (with-current-buffer (slime-output-buffer) (slime-with-output-end-mark ... ... ... ...))) (:repl-result (with-current-buffer (slime-output-buffer) (let ... ... ...))) (t (let* (... ...) (when buffer ...)))) | (ecase target ((nil) (with-current-buffer ... ...)) (:repl-result (with-current-buffer ... ...)) (t (let* ... ...))) | slime-presentation-write(";; Loading file /cygdrive/c/Documents and Settings/seh/My Documents/.slime/fasl/2007-09-05/clisp-2.41-unix-pc386/contrib/swank-presentations.fas ...\n;; Loaded file /cygdrive/c/Documents and Settings/seh/My Documents/.slime/fasl/2007-09-05/clisp-2.41-unix-pc386/contrib/swank-presentations.fas\n" nil) | slime-write-string(";; Loading file /cygdrive/c/Documents and Settings/seh/My Documents/.slime/fasl/2007-09-05/clisp-2.41-unix-pc386/contrib/swank-presentations.fas ...\n;; Loaded file /cygdrive/c/Documents and Settings/seh/My Documents/.slime/fasl/2007-09-05/clisp-2.41-unix-pc386/contrib/swank-presentations.fas\n" nil) | slime-dispatch-event((:write-string ";; Loading file /cygdrive/c/Documents and Settings/seh/My Documents/.slime/fasl/2007-09-05/clisp-2.41-unix-pc386/contrib/swank-presentations.fas ...\n;; Loaded file /cygdrive/c/Documents and Settings/seh/My Documents/.slime/fasl/2007-09-05/clisp-2.41-unix-pc386/contrib/swank-presentations.fas\n") #<network connection "SLIME Lisp" (2799 . "127.0.0.1") state:run>) | slime-process-available-input(#<network connection "SLIME Lisp" (2799 . "127.0.0.1") state:run>) | slime-net-filter(#<network connection "SLIME Lisp" (2799 . "127.0.0.1") state:run> "000137(:write-string \";; Loading file /cygdrive/c/Documents and Settings/seh/My Documents/.slime/fasl/2007-09-05/clisp-2.41-unix-pc386/contrib/swank-presentations.fas ...\n;; Loaded file /cygdrive/c/Documents and Settings/seh/My Documents/.slime/fasl/2007-09-05/clisp-2.41-unix-pc386/contrib/swank-presentations.fas\n\")000015(:return (:ok nil) 2)") `---- Per the `ecase' definition in cl-macs.el, the "t" case rejects keyforms "t" and "otherwise": ,----[ ecase from cl-macs.el ] | (defmacro ecase (expr &rest clauses) | "(ecase EXPR CLAUSES...): like `case', but error if no case fits. | `otherwise'-clauses are not allowed." | (let ((disallowed (or (assq t clauses) | (assq 'otherwise clauses)))) | (if disallowed | (error "`%s' is not allowed in ecase" (car disallowed)))) | (list* 'case expr (append clauses '((ecase-error-flag))))) `---- `slime-presentation-write' has a keyform "t" around line 583. Is this a known issue? -- Steven E. Harris

"Steven E. Harris" <seh@panix.com> writes:
`slime-presentation-write' has a keyform "t" around line 583.
The same problem is present in `slime-repl-write-string' at line 2833 in slime.el. Consulting CVS yields: ,----[ cvs annotate slime.el ] | 1.837 (mkoeppe 29-Aug-07): (set-marker marker (point)))))) | 1.834 (mkoeppe 28-Aug-07): (t | 1.834 (mkoeppe 28-Aug-07): (let* ((marker (slime-output-target-marker target)) `---- -- Steven E. Harris

"Steven E. Harris" <seh@panix.com> writes:
"Steven E. Harris" <seh@panix.com> writes:
`slime-presentation-write' has a keyform "t" around line 583.
The same problem is present in `slime-repl-write-string' at line 2833 in slime.el.
Thanks for the report. Using `ecase' was an oversight. It happens to work in GNU Emacs; I have fixed the code to use `case' in CVS. -- Matthias Köppe -- http://www.math.uni-magdeburg.de/~mkoeppe (currently @math.ucdavis.edu)

Matthias Koeppe <mkoeppe+slime@mail.math.uni-magdeburg.de> writes:
Using `ecase' was an oversight.
That's what I thought, but I didn't want to propose such a patch without understanding more of the context.
It happens to work in GNU Emacs; I have fixed the code to use `case' in CVS.
Got it. It works fine in XEmacs now. Thanks for the prompt fix. -- Steven E. Harris

"Steven E. Harris" <seh@panix.com> writes:
Per the `ecase' definition in cl-macs.el, the "t" case rejects keyforms "t" and "otherwise":
Sorry, that should have read: Per the definition in cl-macs.el, `ecase' rejects keyforms "t" and "otherwise": -- Steven E. Harris
participants (2)
-
Matthias Koeppe
-
Steven E. Harris