[slime-devel] three little patches
Gary King
gwking at metabang.com
Thu Mar 16 13:18:12 UTC 2006
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
> + excl::*common-lisp-version-number*)
> #+clisp (let ((s (lisp-implementation-version)))
> (subseq s 0 (position #\space s)))
> #+armedbear (lisp-implementation-version)
> 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
--
Gary Warren King
metabang.com
http://www.metabang.com/
More information about the slime-devel
mailing list