Luke Hope | 11 Aug 2007 03:54
Picon

Re: Complete backtrace from ABCL/SLIME bug with compiler notes

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/

Gmane