Re: slime
Gary Byers <[email protected]> Sat, 13 Aug 2005 14:53:45 -0600 (MDT)
| Newsgroups | gmane.lisp.openmcl.bugs |
|---|---|
| Message-ID | <[email protected]> |
On Sat, 13 Aug 2005, bryan o'connor wrote:
> one more thing that we should ensure works properly with
> 0.14.4 is slime.
>
> the only breakage that i've noticed is slime-edit-definition
> (M-.) with methods.
>
> adding some missing types (funcallable-standard-class) to the
> etypecase in swank::specializer-name will fix it for some
> methods. others, like documentation, still don't work.
>
> i'm not sure if this is strictly a slime problem with 0.14.4
> or something with 0.14.4 itself.
>
> ...bryan
>
When I first started SLIME (updated from CVS a few minutes ago)
and did M-. on DOCUMENTATION, I got an error in CCL::EDIT-DEFINITION-P;
an assignement to a variable named SPECIALIZERS was assuming that
it could call CLASS-NAME on any method specializer that isn't a list.
(In the pre-most-of-MOP days, EQL specializers were just 2-element
lists.)
That couldn't have ever worked, could it ? (post most-of-MOP)
When I changed that code (in the MAPCAR) to do:
(if (typep s 'class)
(class-name s)
s)
and did M-. again, I got a buffer full of things like:
(METHOD (SETF DOCUMENTATION) (T STRUCTURE-CLASS (EQL T)))
and
(METHOD DOCUMENTATION (STRUCTURE-CLASS (EQL T)))
When I clicked on one of them, XEmacs opened a buffer on the right
file (I think that all DOCUMENTATION/(SETF DOCUMENTATION) methods
are in "ccl:lib;misc.lisp") but failed to find the method. (The lisp
only keeps track of the file that a definition came from and some
indication as to what type of definition it was; for methods, that
indication is the method itself. Past that point, the editor's
pretty much on its own.)
I suppose that the searching issue might be Emacs-/XEmacs-related.
I think that (if SLIME doesn't care about supporting very old versions
of OpenMCL) SWANK::SPECIALIZER-NAME could just be:
(etypecase spec
(class (class-name spec))
(swank-mop:eql-specializer `(eql ,(swank-mop:eql-specializer-object spec))))
e.g, that we don't need to enumerate all of the subclasses of CLASS.
I just tried running under Fink's version of Emacs with the fix to
CCL::EDIT-DEFINITION-P; it (mis-)behaved about the same way that XEmacs
did.
Do you get different behavior ?
Alanr may read this list, and may know what's up on the SLIME side.