[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