
* Martin Simmons <200901081912.n08JC9sM006644@higson.cam.lispworks.com> : Wrote on Thu, 8 Jan 2009 19:12:09 GMT: |>>>>> On Mon, 29 Dec 2008 15:09:56 +0100, knobo said: |> |> Luis Oliveira wrote: |> > Zach Beane <xach@xach.com> writes: |> > |> >> I disagree. I think the default slime setup should have no contribs |> >> loaded, not the arbitrary slime-fancy kitchen sink of contribs loaded. |> > |> > Perhaps we could agree on another set of contribs then? |> > |> Ok, then please don't load slime-fancy by default, as it does not work |> with LispWorks, without applying some patches by Johannes Grødem and |> Peder O. Klingenberg that can be found on this list dated back in 2007. |> It would be very difficult for newcomers to find out that it is |> slime-fancy that is the problem. |> |> I don't know why these patches are not approved for inclusion yet. | | I tried loading CVS HEAD slime-fancy into LispWorks 5.1.2 and I've not seen | any errors yet. The REPL, completion and source location work as expected, | but I've not tested everything. Can you post links to the patches please? Here is what I load into slime after slime loads (I'm still using older slime and have not updated to CVS HEAD) but the first issue is likely unchanged. #|| BASED ON SUGGESTIONS: From: Johannes Groedem <johs@netfonds.no> Newsgroups: gmane.lisp.slime.devel Subject: Re: fancy inspector problems Date: Mon, 17 Sep 2007 15:40:40 +0200 Archived-At: <http://permalink.gmane.org/gmane.lisp.slime.devel/6696> ||# ;;; ;;; patch swank-lispworks.lisp ;;; (in-package "SWANK-BACKEND") ;; we have imported '(slot-boundp-using-class slot-value-using-class) ;; from :clos into swank-mop via import-swank-mop-symbols. i.e. ;; (import '(clos::slot-value-using-class) :swank-mop) ;; (import '(clos::slot-boundp-using-class) :swank-mop) (assert (eq 'clos::slot-value-using-class 'swank-mop::slot-value-using-class)) (assert (eq 'clos::slot-boundp-using-class 'swank-mop::slot-boundp-using-class)) (when (eq 'clos::slot-value-using-class 'swank-mop::slot-value-using-class) (unintern 'swank-mop::slot-value-using-class :swank-mop)) (export 'swank-mop::slot-value-using-class :swank-mop) (when (eq 'clos::slot-boundp-using-class 'swank-mop::slot-boundp-using-class) (unintern 'swank-mop::slot-boundp-using-class :swank-mop)) (export 'swank-mop::slot-boundp-using-class :swank-mop) (defun swank-mop:slot-boundp-using-class (class object slotd) (clos::slot-boundp-using-class class object (clos:slot-definition-name slotd))) (defun swank-mop:slot-value-using-class (class object slotd) (clos::slot-value-using-class class object (clos:slot-definition-name slotd))) ;;; ;;; patch fancy-inspector ;;; (in-package :swank) (defgeneric inspect-slot-for-emacs (class object slot) (:method (class object slot) (let ((slot-name (swank-mop:slot-definition-name slot)) (boundp (swank-mop:slot-boundp-using-class class object slot))) `(,@(if boundp `((:value ,(swank-mop:slot-value-using-class class object slot))) `("#<unbound>")) " " (:action "[set value]" ,(lambda () (with-simple-restart (abort "Abort setting slot ~S" slot-name) (let ((value-string (eval-in-emacs `(condition-case c (slime-read-object ,(format nil "Set slot ~S to (evaluated) : " slot-name)) (quit nil))))) (when (and value-string (not (string= value-string ""))) (setf (swank-mop:slot-value-using-class class object slot) (eval (read-from-string value-string)))))))) ,@(when boundp `(" " (:action "[make unbound]" ,(lambda () (swank-mop:slot-makunbound-using-class class object slot)))))))))