[slime-cvs] CVS slime/contrib
CVS User heller
heller at common-lisp.net
Tue Mar 6 20:55:19 UTC 2012
Update of /project/slime/cvsroot/slime/contrib
In directory tiger.common-lisp.net:/tmp/cvs-serv8079/contrib
Modified Files:
ChangeLog swank-kawa.scm
Log Message:
* swank-kawa.scm (module-method>meth-ref): Slightly better
heuristic for vararg functions.
--- /project/slime/cvsroot/slime/contrib/ChangeLog 2012/03/06 20:55:13 1.532
+++ /project/slime/cvsroot/slime/contrib/ChangeLog 2012/03/06 20:55:19 1.533
@@ -1,5 +1,10 @@
2012-03-06 Helmut Eller <heller at common-lisp.net>
+ * swank-kawa.scm (module-method>meth-ref): Slightly better
+ heuristic for vararg functions.
+
+2012-03-06 Helmut Eller <heller at common-lisp.net>
+
Add missing provide.
* swank-repl.lisp
--- /project/slime/cvsroot/slime/contrib/swank-kawa.scm 2011/12/02 18:18:11 1.26
+++ /project/slime/cvsroot/slime/contrib/swank-kawa.scm 2012/03/06 20:55:19 1.27
@@ -914,18 +914,23 @@
(! location (module-method>meth-ref f)))
(df module-method>meth-ref ((f <gnu.expr.ModuleMethod>) => <meth-ref>)
- (let ((module (! reference-type
- (as <obj-ref> (vm-mirror *the-vm* (@ module f)))))
- (name (mangled-name f)))
- (as <meth-ref> (1st (! methods-by-name module name)))))
+ (let* ((module (! reference-type
+ (as <obj-ref> (vm-mirror *the-vm* (@ module f)))))
+ (1st-method-by-name (fun (name)
+ (let ((i (! methods-by-name module name)))
+ (cond ((! is-empty i) #f)
+ (#t (1st i)))))))
+ (as <meth-ref> (or (1st-method-by-name (! get-name f))
+ (let ((mangled (mangled-name f)))
+ (or (1st-method-by-name mangled)
+ (1st-method-by-name (cat mangled "$V"))
+ (1st-method-by-name (cat mangled "$X"))))))))
(df mangled-name ((f <gnu.expr.ModuleMethod>))
(let* ((name0 (! get-name f))
(name (cond ((nul? name0) (format "lambda~d" (@ selector f)))
(#t (gnu.expr.Compilation:mangleName name0)))))
- (if (= (! maxArgs f) -1)
- (cat name "$V")
- name)))
+ name))
(df class>src-loc ((c <java.lang.Class>) => <location>)
(let* ((type (class>class-ref c))
More information about the slime-cvs
mailing list