[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