Hiya,
Here are three small patches for SLIME. They do the following:
1. Make find-definitions a little more flexible with an around method: if the symbol isn't in the current package, the around method goes on to look in all the packages too. (I haven't added similar logic to symbol completion but will someday).
2. Modifies swank-loader so that Allegro's alisp and mlisp programs get different locations. Otherwise mlisp complains about alisp's files.
3. Added two more symbols to the exports list in swank-openmcl.
HTH,
Index: swank-backend.lisp
RCS file: /project/slime/cvsroot/slime/swank-backend.lisp,v retrieving revision 1.94 diff -u -w -r1.94 swank-backend.lisp --- swank-backend.lisp 20 Nov 2005 23:25:38 -0000 1.94 +++ swank-backend.lisp 16 Mar 2006 01:04:37 -0000 @@ -615,6 +615,20 @@ LOCATION is the source location for the definition.") +(defvar *currently-finding-definitions* nil)
+(defmethod find-definitions :around ((name symbol))
- ;; look in other packages if we don't find something in this
package
- (let ((result (call-next-method)))
- (unless (or result *currently-finding-definitions*)
(let ((*currently-finding-definitions* t)
(symbol-name (symbol-name name)))
(dolist (package (list-all-packages))
(let ((symbol (find-symbol symbol-name package)))
(when symbol
(setf result (append result (find-definitions
symbol))))))))
- result))
(definterface buffer-first-change (filename) "Called for effect the first time FILENAME's buffer is modified." (declare (ignore filename))
Index: swank-loader.lisp
RCS file: /project/slime/cvsroot/slime/swank-loader.lisp,v retrieving revision 1.55 diff -u -w -r1.55 swank-loader.lisp --- swank-loader.lisp 19 Jan 2006 22:56:16 -0000 1.55 +++ swank-loader.lisp 16 Mar 2006 01:04:38 -0000 @@ -65,7 +65,8 @@ ccl::*openmcl-major-version* ccl::*openmcl-minor-version*) #+lispworks (lisp-implementation-version)
- #+allegro excl::*common-lisp-version-number*
- #+allegro (concatenate 'string (if (eq 'h 'H) "A" "M") ;
ANSI vs MoDeRn
#+clisp (let ((s (lisp-implementation-version))) (subseq s 0 (position #\space s))) #+armedbear (lisp-implementation-version)excl::*common-lisp-version-number*)
Index: swank-openmcl.lisp
RCS file: /project/slime/cvsroot/slime/swank-openmcl.lisp,v retrieving revision 1.103 diff -u -w -r1.103 swank-openmcl.lisp --- swank-openmcl.lisp 11 Nov 2005 23:43:43 -0000 1.103 +++ swank-openmcl.lisp 16 Mar 2006 01:04:38 -0000 @@ -65,6 +65,8 @@ cl:method cl:standard-class ccl::eql-specializer
- ccl::eql-specializer-object
- ccl::class-name ;; standard-class readers openmcl-mop:class-default-initargs openmcl-mop:class-direct-default-initargs