11 Aug 2007 03:54
Re: Complete backtrace from ABCL/SLIME bug with compiler notes
Luke Hope <rukubites <at> gmail.com>
2007-08-11 01:54:06 GMT
2007-08-11 01:54:06 GMT
Thank you! This fixed similar problems I'd been getting (however I also backdated abcl and slime to cvs "3 months ago", haven't verified it for most recent versions yet). Cheers, -Luke On 8/10/07, Mark Evenson <mark.evenson <at> gmx.at> wrote: > Mark Evenson wrote: > > Indeed it seems to come about when SWANK::MAKE-COMPILER-NOTE attempts to > > use the MESSAGE accessor to COMPILER-CONDITION as one can see in the > > attached backtrace. Subsequent backtraces don't show the entry into > > MOP::INITIAL-DISCRIMINATING-FUNCTION--because it has bombed out to be nil? > > Attached is a patch for SLIME that allows slime-compile-and-load-file to > work. As far as I can tell, the error comes from ABCL's MOP > implementation, not SLIME, when ABCL first attempts to compute the > proper accessor functions for the SWANK-BACKEND::COMPILER-CONDITION class. > > By trial and error, I found that one can avoid this error by: > > 1. (swank-backend.lisp) Giving every COMPILER-CONDITION slot an > explicit ':initform nil' > > 2. (swank-abcl.lisp) creating a top-level initialization function that > uses each one of the MOP created slot accessors before anything else has > a chance to call them with whatever causes the ABCL MOP to blow up. > > Can anyone confirm that this patch solves the bug for others? Maybe it > can give someone else greater insight as to whether this is really a bug > in the ABCL MOP. > > -- > <Mark.Evenson <at> gmx.at> > > "[T]his is not a disentanglement from, but a progressive knotting into." > > > Index: slime/swank-abcl.lisp > *** slime.orig/swank-abcl.lisp Sun Nov 19 22:33:03 2006 > --- slime/swank-abcl.lisp Fri Aug 10 11:55:06 2007 > *************** > *** 533,536 **** > (defimplementation quit-lisp () > (ext:exit)) > > > --- 533,539 ---- > (defimplementation quit-lisp () > (ext:exit)) > > + (let ((c (make-condition 'compiler-condition)) > + (slots `(severity message short-message references location))) > + (dolist (slot slots) > + (funcall slot c))) > Index: slime/swank-backend.lisp > *** slime.orig/swank-backend.lisp Thu Apr 19 18:36:12 2007 > --- slime/swank-backend.lisp Fri Aug 10 11:42:10 2007 > *************** > *** 388,401 **** > --- 388,404 ---- > ;; The original condition thrown by the compiler if appropriate. > ;; May be NIL if a compiler does not report using conditions. > :type (or null condition) > + :initform nil > :initarg :original-condition > :accessor original-condition) > > (severity :type severity > :initarg :severity > + :initform nil > :accessor severity) > > (message :initarg :message > + :initform nil > :accessor message) > > (short-message :initarg :short-message > *************** > *** 407,412 **** > --- 410,416 ---- > :accessor references) > > (location :initarg :location > + :initform nil > :accessor location))) > > (definterface find-external-format (coding-system) > > ------------------------------------------------------------------------- > 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/ > _______________________________________________ > armedbear-j-devel mailing list > armedbear-j-devel <at> lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/armedbear-j-devel > > ------------------------------------------------------------------------- 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/
RSS Feed