[slime-devel] Slime compile warning bug
Osei Poku
osei.poku at gmail.com
Tue Feb 19 18:41:05 UTC 2008
Hello,
It seems lispworks is not populating the compiler::*error-database* is
a way that is not compatible with slime's current interpretation.
According to map-error-database in swank-lispworks.lisp in my version
and the current CVS version, the expected structure of the variable is
a list of
(filename . ((dspec . condition) ... ))
In LW 5.1.1, this structure seems to populated differently. the
condition is instead a cons with the condition as the car. ie
it is now:
(filename . ((dspec . (condition . some-number) ... )))
This change seems to cause the following error when C-c C-c (slime-
compile-defun ?) is performed on a function that would yield any kind
of warning.
(#<CONDITIONS::SIMPLE-STYLE-WARNING 4050518B8B>
. 1) fell through ETYPECASE expression.
Wanted one of (ERROR STYLE-WARNING WARNING).
[Condition of type CONDITIONS:CASE-FAILURE]
Restarts:
0: [ABORT] Abort SLIME compilation.
1: [ABORT] Return to SLIME's top level.
2: [ABORT] Quit process.
Backtrace:
0: CONDITIONS::CONDITIONS-ERROR (:INVISIBLEP T CONDITIONS:CASE-
FAILURE (:NAME ETYPECASE :DATUM (#<CONDITIONS::SIMPLE-STYLE-WARNING
4050518B8B> . 1) :EXPECTED-TYPE (OR ERROR STYLE-WARNING WARNING) ...))
1: ERROR (CONDITIONS:CASE-FAILURE &REST (:NAME ETYPECASE :DATUM
(#<CONDITIONS::SIMPLE-STYLE-WARNING 4050518B8B> . 1) :EXPECTED-TYPE
(OR ERROR STYLE-WARNING WARNING) ...))
2: CONDITIONS::ETYPECASE-ERROR ((#<CONDITIONS::SIMPLE-STYLE-WARNING
4050518B8B> . 1) (ERROR STYLE-WARNING WARNING))
3: SWANK-BACKEND::SIGNAL-COMPILER-CONDITION ("(A is bound but not
referenced . 1)" (:LOCATION (:BUFFER "system-test.lisp") (:POSITION
880) NIL) (#<CONDITIONS::SIMPLE-STYLE-WARNING 4050518B8B> . 1))
Locals:
SWANK-BACKEND:MESSAGE = "(A is bound but not referenced . 1)"
SWANK-BACKEND:LOCATION = (:LOCATION (:BUFFER "system-
test.lisp") (:POSITION 880) NIL)
CONDITION = (#<CONDITIONS::SIMPLE-STYLE-WARNING 4050518B8B> .
1)
4: SWANK-BACKEND::MAP-ERROR-DATABASE (((#P"/private/tmp/
LWtemp.APPLEHEAD.ECE.CMU.EDU.37974.18.lisp" (NIL #))) #<Closure 1
subfunction of SWANK-BACKEND::SIGNAL-ERROR-DATA-BASE 4020008644>)
Locals:
SWANK-BACKEND::DATABASE = ((#P"/private/tmp/
LWtemp.APPLEHEAD.ECE.CMU.EDU.37974.18.lisp" (NIL (# . 1))))
SWANK-BACKEND::FN = #<Closure 1 subfunction of SWANK-
BACKEND::SIGNAL-ERROR-DATA-BASE 4020008644>
SWANK-BACKEND::FILENAME = #P"/private/tmp/
LWtemp.APPLEHEAD.ECE.CMU.EDU.37974.18.lisp"
SWANK-BACKEND::DEFS = ((NIL (#<CONDITIONS::SIMPLE-STYLE-
WARNING 4050518B8B> . 1)))
DBG::|tail-| = NIL
SWANK-BACKEND::DSPEC = NIL
SWANK-BACKEND::CONDITIONS = ((#<CONDITIONS::SIMPLE-STYLE-
WARNING 4050518B8B> . 1))
DBG::|tail-| = NIL
DBG::|dolist-| = ((#<CONDITIONS::SIMPLE-STYLE-WARNING
4050518B8B> . 1))
SWANK-BACKEND::C = (#<CONDITIONS::SIMPLE-STYLE-WARNING
4050518B8B> . 1)
5: (HARLEQUIN-COMMON-LISP:SUBFUNCTION 1 (LISPWORKS:TOP-LEVEL-FORM
76)) NIL
Locals:
SWANK-BACKEND:LOCATION = (:EMACS-BUFFER "system-test.lisp"
880 "(defun test-err (a)
(+ 2 (* 4 5)))")
SWANK-BACKEND::TMPNAME = #P"/tmp/LWtemp.APPLEHEAD.ECE.CMU.EDU.
37974.18.lisp"
STRING = "(defun test-err (a)
(+ 2 (* 4 5)))"
6: COMPILER::DO-COMPILATION-UNIT (#<Closure 1 subfunction of
(LISPWORKS:TOP-LEVEL-FORM 76) 4020000984> T NIL)
Locals:
COMPILER::CONTINUATION = #<Closure 1 subfunction of
(LISPWORKS:TOP-LEVEL-FORM 76) 4020000984>
COMPILER::DO-MESSAGES = T
COMPILER::SUMMARIZE = NIL
7: COMPILER::WITH-COMPILATION-UNIT-INTERNAL (#<Closure 1
subfunction of (LISPWORKS:TOP-LEVEL-FORM 76) 4020000984> &KEY NIL NIL
NIL)
8: (HARLEQUIN-COMMON-LISP:SUBFUNCTION 1 (LISPWORKS:TOP-LEVEL-FORM
76)) ("(defun test-err (a)
(+ 2 (* 4 5)))" &KEY "system-test.lisp" 880 "<DIRECTORY>")
9: SWANK-BACKEND:SWANK-COMPILE-STRING ("(defun test-err (a)
(+ 2 (* 4 5)))" &KEY "system-test.lisp" 880 "/Users/opoku/Work/
testworks/diagnosis/")
Thanks.
Osei
More information about the slime-devel
mailing list