edit-definitions-lisp breakage under lispworks
Alain Picard <[email protected]>
| Newsgroups | gmane.lisp.ilisp.devel |
|---|---|
| Message-ID | <[email protected]> |
Dear ilispers, For a while now, it's annoyed me that edit-definitions-lisp doesn't work very well under Lispworks. In particular, doing M-. on a symbol which is a generic function takes me to the definition of DEFGENERIC, but I can't then use M-, to visit all the actual methods. Here's a patch which fixes this (somewhat). Thinks like EDIT-CALLERS-LISP still don't work -- I'll look into that soon. Does all that stuff work under the other lisps (e.g. clisp, cmucl)? If so, I know I only need to hack in lispworks.lisp, otherwise, I'll have to hunt down the problems in ilisp-src.el. EDIT-CALLERS-LISP still fails for "variables" types; that's because the lispworks DSPEC stuff doesn't do the right thing. Thanks. Patch to lispworks.lisp (from version 5.12.0) follows: ================================================================ 132c132 < (paths (when symbol (dspec:find-dspec-locations symbol))) --- > (paths (when symbol (all-dspecs symbol))) 148a149,159 > > (defun all-dspecs (symbol) > "Try to dspecs for all methods if symbol is a generic function. > Otherwise, just use the underlying Lispworks DSPEC mechanism. > Note that this is still failing on `variables'" > (if (and (fboundp symbol) > (typep (symbol-function symbol) 'clos:standard-generic-function)) > (loop for dspec in (mapcar #'clos:method-to-definition-spec > (clos:generic-function-methods (symbol-function symbol))) > append (dspec:find-dspec-locations dspec)) > (dspec:find-dspec-locations symbol))) ================================================================ -- Alain Picard Memetrics _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm