Peter Graves | 31 Jul 2007 11:03

[Fwd: Re: [Fwd: ABCL (CVS HEAD) with SLIME (CVS HEAD) failing torecord compiler notes]]

Folks, please  subscribe before sending mail to the list!

----- Forwarded message -----

   From: Alex Mizrahi <killerstorm <at> newmail.ru>
     To: armedbear-j-devel <at> lists.sourceforge.net
Subject: Re: [Fwd: ABCL (CVS HEAD) with SLIME (CVS HEAD) failing torecord	compiler notes]
   Date: Tue, 31 Jul 2007 00:27:13 +0300

(message (Hello 'Peter)
(you :wrote  :on '(Mon, 30 Jul 2007 10:29:40 -0700))
(

 PG> When invoking slime-compile-and-load-file on a Lisp file whose
 PG> compilation will produce compiler warnings, abcl-0.0.10.5 is producing
 PG> the attached backtrace.  Here's the excerpt of the top of the trace:

 PG> Backtrace:
 PG>    0: (INVOKE-DEBUGGER #<SIMPLE-TYPE-ERROR {833C9}>)
 PG>    1: (SWANK-BACKEND:MESSAGE #<SWANK-BACKEND:COMPILER-CONDITION
 PG> {1E1329E}>)
 PG>    2: (SWANK::MAKE-COMPILER-NOTE #<SWANK-BACKEND:COMPILER-CONDITION
 PG> {1E1329E}>)
 PG>    3: (SWANK::RECORD-NOTE-FOR-CONDITION
 PG> #<SWANK-BACKEND:COMPILER-CONDITION {1E1329E}>)

i remember i had something like that poping out randomly -- several times in 
some long debugging sessions it kinda got broken, and after that all 
compilations (with C-c-c) that produce warnings made a backtrace like that.
so i guess root cause is present for a long time, but gets activated only in 
some circumstances, and now they get activated by default..

currently i can test it on ABCL 0.0.10.5 built from CVS snapshot as of 
07.07.07 (it's kinda lucky :), SLIME is not latest but more-or-less fresh.
it runs in funny way -- if i load it and compile a.lisp, it barfs following:

; Compiling E:\a.lisp ...
Debugger invoked on condition of type SIMPLE-ERROR:
  COMPILE-CONSTANT unhandled case #<FUNCTION (LAMBDA (CLASS)) {1721AE2}>
Restarts:
  0: MUFFLE-WARNING Skip warning.
  1: ABORT          Abort SLIME compilation.
  2: ABORT-REQUEST  Abort handling SLIME request.
[1] CL-USER(2):

into the repl. i can tell it to MUFFLE-WARNING, so it continues. in this 
case message is not delivered to Emacs.
after that C-c-c produces following backtrace:

The value #<SWANK-BACKEND:COMPILER-CONDITION {13D0493}> is not of type NIL.
   [Condition of type SIMPLE-TYPE-ERROR]
  0: (INVOKE-DEBUGGER #<SIMPLE-TYPE-ERROR {295B9A}>)
  1: (SWANK-BACKEND:MESSAGE #<SWANK-BACKEND:COMPILER-CONDITION {13D0493}>)
  2: (SWANK::MAKE-COMPILER-NOTE #<SWANK-BACKEND:COMPILER-CONDITION 
{13D0493}>)

although sometimes it might not, it's random. after it have entered broken 
state, it stays in it.

however if i load it fresh and then compile a function with C-c-c, it works 
fine, and after that Compile/Load file works fine too.

so it appears to be an initialization problem once again. and quite possible 
CLOS is involved too.. as a speculation, i can guess it can be because of 
recursive compiling -- it compiles file, fires warning, that hits SLIME, 
which call generic function, and it compiles its discrimitating function, 
some global variables clash etc.. however if discriminating function gets 
compiled beforehands, everything works fine.

patch disabling emf and discriminating function compilation appears to be 
helping:

Index: clos.lisp
===================================================================
RCS file: /cvsroot/armedbear-j/j/j/src/org/armedbear/lisp/clos.lisp,v
retrieving revision 1.212
diff -r1.212 clos.lisp
1303,1308c1303
<                    nil))))))
<
<     (when (and (fboundp 'compile)
<                (not (autoloadp 'compile)))
<       (setf code (or (compile nil code) code)))
<
---
>                    nil))))))
1520,1521c1515
<     (or (ignore-errors (compile nil emf-form))
<         (coerce-to-function emf-form))))
---
>         (coerce-to-function emf-form)))

however, i didn't test this much.

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"choose no life") 

----- End of forwarded message -----

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/

Gmane