[slime-devel] Slime bug in macro handling
Will M. Farr
farr at MIT.EDU
Fri Apr 29 17:43:04 UTC 2005
Hello all,
I have just encountered a bug while using SBCL 0.9.0.1 or OpenMCL
0.14.3 and the latest CVS slime (as of 10 minutes ago) on my PowerBook
G4 with Mac OS 10.3.9. Evaluating the following commands using C-M-x
(except for the in-package, which I have to type at the REPL) works
fine:
(defpackage :fast-math
(:use :cl))
(in-package :fast-math)
(defmacro f+ (&rest xs)
`(the double-float
(+ ,@(map 'list #'(lambda (x) `(the double-float ,x)) xs))))
(defmacro f- (&rest xs)
`(the double-float
(- ,@(map 'list #'(lambda (x) `(the double-float ,x)) xs))))
(defmacro f* (&rest xs)
`(the double-float
(* ,@(map 'list #'(lambda (x) `(the double-float ,x)) xs))))
(defmacro f/ (&rest xs)
`(the double-float
(/ ,@(map 'list #'(lambda (x) `(the double-float ,x)) xs))))
(f* 10.d0 30.d0)
(f+ 10.d0 30.d0)
(f- 10.d0 30.d0)
(f/ 30.d0 10.d0)
However, if I then type
(f* 10.d0 30.d0)
at the REPL, I get an error involving the "undefined function f*".
Even after this, if I then evaluate (f* 10.d0 30.d0) using C-M-x it
works fine! I notice that typing (f* ...) in the REPL doesn't bring up
the autocomplete information from SLIME, while typing it in a different
slime buffer does bring up the note (f* &rest xs). The problem doesn't
occur if the macros are defined in the cl-user package.
I don't really know anything about the internal workings of slime or
I'd post a fix, too. Sorry.
Let me know if there's more information I can offer about the problem.
Thanks!
Will Farr
More information about the slime-devel
mailing list