When I inspect the object from lispworks it works ------------------ CL-USER> (inspect http://www.lispworks.com/reference/HyperSpec/Body/f_inspec.htm k2::*current-hushe* )
#<HUSHE-CLIENT:HUSHE-CLIENT 118742AB> is a HUSHE-CLIENT:HUSHE-CLIENT TIMESTAMP 3398596745 TIMEOUT 1200 I/O-PACKAGE #<The HUSHE-CLIENT package, 135/256 internal, 101/256 external> LOCK #<MP:LOCK "Hushe-client serializer" Unlocked NIL 0 118742DF> TCPCLIENT-STREAM #<COMM:SOCKET-STREAM 11875E87> HOST "localhost" PORT 11116 ERROR-FORMAT "GENERIC-TCP-CLIENT ERROR: ~a" ----------------
But when I inspect with slime I get this: (note I use all contib mocules, and http://www.lispworks.com/reference/HyperSpec/Body/a_and.htm it is latest cvs)
---------------------- The slot #<STANDARD-EFFECTIVE-SLOT-DEFINITION GENERIC-TCPCLIENT::ERROR-FORMAT 1121052F> is missing from #<HUSHE-CLIENT:HUSHE-CLIENT 11A11963> (of class http://www.lispworks.com/reference/HyperSpec/Body/t_class.htm #<STANDARD-CLASS http://www.lispworks.com/reference/HyperSpec/Body/t_std_cl.htm HUSHE-CLIENT:HUSHE-CLIENT 10A27AEB>), when reading the value. [Condition of type CONDITIONS::SLOT-MISSING-ERROR]
Restarts: 0: [ABORT] Return to SLIME's top level. 1: [ABORT] Quit process.
Backtrace: 0: CONDITIONS::CONDITIONS-ERROR (:INVISIBLEP T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm CONDITIONS::SLOT-MISSING-ERROR (:NAME #<STANDARD-EFFECTIVE-SLOT-DEFINITION GENERIC-TCPCLIENT::ERROR-FORMAT 1121052F> :INSTANCE #<HUSHE-CLIENT:HUSHE-CLIENT 11A11963> :CLASS #<STANDARD-CLASS http://www.lispworks.com/reference/HyperSpec/Body/t_std_cl.htm HUSHE-CLIENT:HUSHE-CLIENT 10A27AEB> :OPERATION ..)) 1: ERROR (CONDITIONS::SLOT-MISSING-ERROR &REST (:NAME #<STANDARD-EFFECTIVE-SLOT-DEFINITION GENERIC-TCPCLIENT::ERROR-FORMAT 1121052F> :INSTANCE #<HUSHE-CLIENT:HUSHE-CLIENT 11A11963> :CLASS #<STANDARD-CLASS http://www.lispworks.com/reference/HyperSpec/Body/t_std_cl.htm HUSHE-CLIENT:HUSHE-CLIENT 10A27AEB> :OPERATION SLOT-BOUNDP http://www.lispworks.com/reference/HyperSpec/Body/f_slt_bo.htm ..)) 2: (METHOD http://www.lispworks.com/reference/HyperSpec/Body/t_method.htm SLOT-MISSING http://www.lispworks.com/reference/HyperSpec/Body/f_slt_mi.htm (T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm)) (#<STANDARD-CLASS http://www.lispworks.com/reference/HyperSpec/Body/t_std_cl.htm HUSHE-CLIENT:HUSHE-CLIENT 10A27AEB> #<HUSHE-CLIENT:HUSHE-CLIENT 11A11963> #<STANDARD-EFFECTIVE-SLOT-DEFINITION GENERIC-TCPCLIENT::ERROR-FORMAT 1121052F> SLOT-BOUNDP http://www.lispworks.com/reference/HyperSpec/Body/f_slt_bo.htm &OPTIONAL NIL http://www.lispworks.com/reference/HyperSpec/Body/a_nil.htm) 3: CLOS::GENERIC-FUNCTION-NON-DISCRIMINATOR NIL 4: CLOS::SLOT-BOUNDP-MISSING (#(1571 (GENERIC-TCPCLIENT::TCPCLIENT-STREAM GENERIC-TCPCLIENT::HOST GENERIC-TCPCLIENT::PORT GENERIC-TCPCLIENT::TIMEOUT GENERIC-TCPCLIENT::I/O-PACKAGE GENERIC-TCPCLIENT::ERROR-FORMAT HUSHE-CLIENT::TIMESTAMP HUSHE-CLIENT::LOCK) NIL http://www.lispworks.com/reference/HyperSpec/Body/a_nil.htm ..)) 5: (METHOD http://www.lispworks.com/reference/HyperSpec/Body/t_method.htm SWANK:INSPECT-SLOT-FOR-EMACS (T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm)) (#<STANDARD-CLASS http://www.lispworks.com/reference/HyperSpec/Body/t_std_cl.htm HUSHE-CLIENT:HUSHE-CLIENT 10A27AEB> #HUSHE-CLIENT:HUSHE-CLIENT 11A11963 #<STANDARD-EFFECTIVE-SLOT-DEFINITION GENERIC-TCPCLIENT::ERROR-FORMAT 1121052F>) 6: (SUBFUNCTION 1 (METHOD http://www.lispworks.com/reference/HyperSpec/Body/t_method.htm CLOS::UPDATE-DISCRIMINATOR-CODE (STANDARD-GENERIC-FUNCTION http://www.lispworks.com/reference/HyperSpec/Body/t_std_ge.htm))) (:INVISIBLEP T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm &REST (#<STANDARD-CLASS http://www.lispworks.com/reference/HyperSpec/Body/t_std_cl.htm HUSHE-CLIENT:HUSHE-CLIENT 10A27AEB> #HUSHE-CLIENT:HUSHE-CLIENT 11A11963 #<STANDARD-EFFECTIVE-SLOT-DEFINITION GENERIC-TCPCLIENT::ERROR-FORMAT 1121052F>)) 7: (METHOD http://www.lispworks.com/reference/HyperSpec/Body/t_method.htm SWANK::ALL-SLOTS-FOR-INSPECTOR (STANDARD-OBJECT http://www.lispworks.com/reference/HyperSpec/Body/t_std_ob.htm T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm)) (#<HUSHE-CLIENT:HUSHE-CLIENT 11A11963> :DONT-KNOW) 8: CLOS::CACHE-MISS-FUNCTION (:INVISIBLEP T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm &REST (#<HUSHE-CLIENT:HUSHE-CLIENT 11A11963> #<SWANK::FANCY-INSPECTOR 1188D817>)) 9: (SUBFUNCTION 1 (METHOD http://www.lispworks.com/reference/HyperSpec/Body/t_method.htm CLOS::UPDATE-DISCRIMINATOR-CODE (STANDARD-GENERIC-FUNCTION http://www.lispworks.com/reference/HyperSpec/Body/t_std_ge.htm))) (:INVISIBLEP T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm &REST (#HUSHE-CLIENT:HUSHE-CLIENT 11A11963 #SWANK::FANCY-INSPECTOR 1188D817)) 10: (METHOD http://www.lispworks.com/reference/HyperSpec/Body/t_method.htm SWANK-BACKEND:INSPECT-FOR-EMACS (STANDARD-OBJECT http://www.lispworks.com/reference/HyperSpec/Body/t_std_ob.htm SWANK::FANCY-INSPECTOR)) (#<HUSHE-CLIENT:HUSHE-CLIENT 11A11963> #SWANK::FANCY-INSPECTOR 1188D817) 11: CLOS::CACHE-MISS-FUNCTION (:INVISIBLEP T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm &REST (#<HUSHE-CLIENT:HUSHE-CLIENT 11A11963> #<SWANK::FANCY-INSPECTOR 1188D817>)) 12: (SUBFUNCTION 1 (METHOD http://www.lispworks.com/reference/HyperSpec/Body/t_method.htm CLOS::UPDATE-DISCRIMINATOR-CODE (STANDARD-GENERIC-FUNCTION http://www.lispworks.com/reference/HyperSpec/Body/t_std_ge.htm))) (:INVISIBLEP T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm &REST (#HUSHE-CLIENT:HUSHE-CLIENT 11A11963 #SWANK::FANCY-INSPECTOR 1188D817)) 13: SWANK::INSPECT-OBJECT (#<HUSHE-CLIENT:HUSHE-CLIENT 11A11963> &OPTIONAL "<(INSPECTOR *DEFAULT-INSPECTOR*)>") 14: (SUBFUNCTION 1 SWANK:INIT-INSPECTOR) NIL 15: SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (#<Closure 1 subfunction of SWANK:INIT-INSPECTOR>) 16: SWANK::CALL-WITH-BUFFER-SYNTAX (#<Closure 1 subfunction of SWANK:INIT-INSPECTOR>) 17: SYSTEM::%INVOKE (:INVISIBLEP T http://www.lispworks.com/reference/HyperSpec/Body/a_t.htm) 18: SYSTEM::%EVAL ((SWANK:INIT-INSPECTOR "k2::*current-hushe*")) 19: EVAL ((SWANK:INIT-INSPECTOR "k2::*current-hushe*")) 20: (SUBFUNCTION 1 SWANK::EVAL-FOR-EMACS) NIL 21: (SUBFUNCTION 1 (TOP-LEVEL-FORM 52)) (#</Function/ http://www.lispworks.com/reference/HyperSpec/Body/a_fn.htm SWANK:SWANK-DEBUGGER-HOOK> #<Closure 1 subfunction of SWANK::EVAL-FOR-EMACS>) 22: SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (#</Function/ http://www.lispworks.com/reference/HyperSpec/Body/a_fn.htm SWANK:SWANK-DEBUGGER-HOOK> #<Closure 1 subfunction of SWANK::EVAL-FOR-EMACS>) 23: FUNCALL (SWANK::EVAL-FOR-EMACS &REST ((SWANK:INIT-INSPECTOR "k2::*current-hushe*") "COMMON-LISP-USER" 13)) 24: SWANK::READ-FROM-EMACS NIL 25: (SUBFUNCTION 1 SWANK::HANDLE-REQUEST) NIL 26: (SUBFUNCTION 1 (TOP-LEVEL-FORM 52)) (#</Function/ http://www.lispworks.com/reference/HyperSpec/Body/a_fn.htm SWANK:SWANK-DEBUGGER-HOOK> #</Function/ http://www.lispworks.com/reference/HyperSpec/Body/a_fn.htm 1 subfunction of SWANK::HANDLE-REQUEST>) 27: SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (#</Function/ http://www.lispworks.com/reference/HyperSpec/Body/a_fn.htm SWANK:SWANK-DEBUGGER-HOOK> #</Function/ http://www.lispworks.com/reference/HyperSpec/Body/a_fn.htm 1 subfunction of SWANK::HANDLE-REQUEST>) 28: (SUBFUNCTION 1 SWANK::CALL-WITH-CONNECTION) NIL 29: SWANK::CALL-WITH-REDIRECTED-IO (#<SWANK::CONNECTION 1192C3E7> #<Closure 1 subfunction of SWANK::CALL-WITH-CONNECTION>) 30: SWANK::CALL-WITH-CONNECTION (#<SWANK::CONNECTION 1192C3E7> #</Function/ http://www.lispworks.com/reference/HyperSpec/Body/a_fn.htm 1 subfunction of SWANK::HANDLE-REQUEST>) 31: SWANK::HANDLE-REQUEST (#<SWANK::CONNECTION 1192C3E7>) 32: SWANK::REPL-LOOP (#<SWANK::CONNECTION 1192C3E7>) 33: (SUBFUNCTION 1 SWANK::SPAWN-REPL-THREAD) NIL 34: SWANK::CALL-WITH-BINDINGS (NIL http://www.lispworks.com/reference/HyperSpec/Body/a_nil.htm #<Closure 1 subfunction of SWANK::SPAWN-REPL-THREAD>) 35: (SUBFUNCTION 1 SWANK::SPAWN-REPL-THREAD) NIL 36: (SUBFUNCTION MP::PROCESS-SG-FUNCTION MP::INITIALIZE-PROCESS-STACK) (:DONT-KNOW) 37: SYSTEM::%%FIRST-CALL-TO-STACK NIL 38: SYSTEM::%%FIRST-CALL-TO-STACK NIL
* Knut Olav Bøhmer knobo@online.no:
When I inspect the object from lispworks it works
It appears to be Lispworks-specific, by the way. (Yes, I got the same error, but not with CLISP or SBCL.)
* Johannes Groedem johs@netfonds.no:
When I inspect the object from lispworks it works
It appears to be Lispworks-specific, by the way. (Yes, I got the same error, but not with CLISP or SBCL.)
I'm not entirely sure that this is the proper fix, but if anyone wants to take a look, here's a patch that fixes it. (WFM, anyway...)
After some further testing I got it working. Looks like some files was not recompiled.
Johannes Groedem wrote:
- Johannes Groedem johs@netfonds.no:
When I inspect the object from lispworks it works
It appears to be Lispworks-specific, by the way. (Yes, I got the same error, but not with CLISP or SBCL.)
I'm not entirely sure that this is the proper fix, but if anyone wants to take a look, here's a patch that fixes it. (WFM, anyway...)
Index: swank-lispworks.lisp
RCS file: /project/slime/cvsroot/slime/swank-lispworks.lisp,v retrieving revision 1.92 diff -u -r1.92 swank-lispworks.lisp --- swank-lispworks.lisp 23 Aug 2007 19:03:37 -0000 1.92 +++ swank-lispworks.lisp 17 Sep 2007 13:32:35 -0000 @@ -17,7 +17,9 @@ (import-swank-mop-symbols :clos '(:slot-definition-documentation :eql-specializer :eql-specializer-object
:compute-applicable-methods-using-classes))
:compute-applicable-methods-using-classes
:slot-boundp-using-class
:slot-value-using-class))
(defun swank-mop:slot-definition-documentation (slot) (documentation slot t)) @@ -25,6 +27,12 @@ (defun swank-mop:compute-applicable-methods-using-classes (gf classes) (clos::compute-applicable-methods-from-classes gf classes))
+(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)))
;; lispworks doesn't have the eql-specializer class, it represents ;; them as a list of `(EQL ,OBJECT) (deftype swank-mop:eql-specializer () 'cons)
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
I got this warning/error though:
The following function is undefined: (SETF SWANK-MOP:SLOT-VALUE-USING-CLASS) which is referenced by INSPECT-SLOT-FOR-EMACS
And slime-read-object looks like it is undefined.
From ChangeLog:
2007-08-23 Helmut Eller heller@common-lisp.net Some inspector cleanups. * slime.el (slime-inspect): Remove dwim stuff and drop keyword args. (slime-read-object): Killed.
Johannes Groedem wrote:
- Johannes Groedem johs@netfonds.no:
When I inspect the object from lispworks it works
It appears to be Lispworks-specific, by the way. (Yes, I got the same error, but not with CLISP or SBCL.)
I'm not entirely sure that this is the proper fix, but if anyone wants to take a look, here's a patch that fixes it. (WFM, anyway...)
Index: swank-lispworks.lisp
RCS file: /project/slime/cvsroot/slime/swank-lispworks.lisp,v retrieving revision 1.92 diff -u -r1.92 swank-lispworks.lisp --- swank-lispworks.lisp 23 Aug 2007 19:03:37 -0000 1.92 +++ swank-lispworks.lisp 17 Sep 2007 13:32:35 -0000 @@ -17,7 +17,9 @@ (import-swank-mop-symbols :clos '(:slot-definition-documentation :eql-specializer :eql-specializer-object
:compute-applicable-methods-using-classes))
:compute-applicable-methods-using-classes
:slot-boundp-using-class
:slot-value-using-class))
(defun swank-mop:slot-definition-documentation (slot) (documentation slot t)) @@ -25,6 +27,12 @@ (defun swank-mop:compute-applicable-methods-using-classes (gf classes) (clos::compute-applicable-methods-from-classes gf classes))
+(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)))
;; lispworks doesn't have the eql-specializer class, it represents ;; them as a list of `(EQL ,OBJECT) (deftype swank-mop:eql-specializer () 'cons)
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
* Knut Olav Bøhmer knobo@online.no:
I got this warning/error though: The following function is undefined: (SETF SWANK-MOP:SLOT-VALUE-USING-CLASS) which is referenced by INSPECT-SLOT-FOR-EMACS
Ah, yes, I forgot to define the corresponding setf-function.
.-- Knut Olav B?hmer: | And slime-read-object looks like it is undefined. | | >From ChangeLog: | 2007-08-23 Helmut Eller heller@common-lisp.net | Some inspector cleanups. | * slime.el (slime-inspect): Remove dwim stuff and drop keyword args. | (slime-read-object): Killed.
This seems to be outstanding still. The patch fixes it.
Thanks, Sasha
How about doing something like this in inspect-slot-for-emacs
file: cvs/slime/contrib/swank-fancy-inspector.lisp function: inspect-slot-for-emacs
(eval (read-from-string value-string)))))))) + (:action ,(custom-inspect-name class object slot) + ,(lambda () (custom-inspect-call class object slot))) ,@(when boundp `(" " (:action "[make unbound]"
With the following methods something like this:
(defmethod custom-inspect-name (class object slot) "[No custom inspections]")
(defmethod custom-inspect-call (class object slot) nil)
And then one could make own methods specializing on your own classes and slots.
(defmethod custom-inspect-name ((class person) object (slot company)) (format nil "[boss of ~a]" (name-of person))
(defmethod custom-inspect-call ((class person) object (slot company)) (slime-inspect (boss-of person))
Or whatever object models you have. Maybe make custom-inspect-call to follow relations in cl-sql....
(and add necessary checks, restarts and handler-cases)
.-- Sasha Kovar: | .-- Knut Olav B?hmer: | | And slime-read-object looks like it is undefined. | | | | >From ChangeLog: | | 2007-08-23 Helmut Eller heller@common-lisp.net | | Some inspector cleanups. | | * slime.el (slime-inspect): Remove dwim stuff and drop keyword args. | | (slime-read-object): Killed. | | This seems to be outstanding still. The patch fixes it.
Hi.
Do the slime gods approve this patch? Perhaps someone with the commit bit would like to add it.
Thanks, Sasha
Johannes Groedem wrote:
- Johannes Groedem johs@netfonds.no:
When I inspect the object from lispworks it works
It appears to be Lispworks-specific, by the way. (Yes, I got the same error, but not with CLISP or SBCL.)
I'm not entirely sure that this is the proper fix, but if anyone wants to take a look, here's a patch that fixes it. (WFM, anyway...)
The patch is not in CVS yet. Could someone put it inn? It's to bad to have a lisp that does not work with slime.
Index: swank-lispworks.lisp
RCS file: /project/slime/cvsroot/slime/swank-lispworks.lisp,v retrieving revision 1.92 diff -u -r1.92 swank-lispworks.lisp --- swank-lispworks.lisp 23 Aug 2007 19:03:37 -0000 1.92 +++ swank-lispworks.lisp 17 Sep 2007 13:32:35 -0000 @@ -17,7 +17,9 @@ (import-swank-mop-symbols :clos '(:slot-definition-documentation :eql-specializer :eql-specializer-object
:compute-applicable-methods-using-classes))
:compute-applicable-methods-using-classes
:slot-boundp-using-class
:slot-value-using-class))
(defun swank-mop:slot-definition-documentation (slot) (documentation slot t)) @@ -25,6 +27,12 @@ (defun swank-mop:compute-applicable-methods-using-classes (gf classes) (clos::compute-applicable-methods-from-classes gf classes))
+(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)))
;; lispworks doesn't have the eql-specializer class, it represents ;; them as a list of `(EQL ,OBJECT) (deftype swank-mop:eql-specializer () 'cons)
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
Johannes Groedem johs@netfonds.no writes:
- Johannes Groedem johs@netfonds.no:
When I inspect the object from lispworks it works
It appears to be Lispworks-specific, by the way. (Yes, I got the same error, but not with CLISP or SBCL.)
I'm not entirely sure that this is the proper fix, but if anyone wants to take a look, here's a patch that fixes it. (WFM, anyway...)
It seems this has still not been included. Oh, well
[sorry for the dupe. Hit send too soon.]
Johannes Groedem johs@netfonds.no writes:
- Johannes Groedem johs@netfonds.no:
When I inspect the object from lispworks it works
It appears to be Lispworks-specific, by the way. (Yes, I got the same error, but not with CLISP or SBCL.)
I'm not entirely sure that this is the proper fix, but if anyone wants to take a look, here's a patch that fixes it. (WFM, anyway...)
It seems this has still not been included. Oh, well, what a pity. Meanwhile, here's an updated patch that makes both the "set value" and the "make unbound" buttons in the fancy inspector work.
...Peder...