We defined a macro named ë (Greek lambda character, in case this email isn't Unicode-friendly) to expand into a lambda form, partly to save typing and partly to add a couple extra features our system needs. This works fine when you compile files, but not in a Slime REPL or when using the command slime-compile-defun. For example,<br>

<br>(defun foo ()<br>  (ë (x) (1+ x)))<br><br>works the way you'd expect if you compile the file it's in. But in the REPL bad things happen:<br><br>(defun foo ()<br>   (ë (x) (1+ x)))<br>;Compiler warnings :<br>;   In FOO: Undefined function Ë<br>

;   In FOO: Undefined function X<br>;   In FOO: Undeclared free variable X<br>=> FOO<br><br>(foo) <br>=> Undefined function X called with arguments () .<br>   [Condition of type CCL::UNDEFINED-FUNCTION-CALL]<br><br>

(macroexpand '(ë (x) (1+ x)))<br> => (Ë (X) (1+ X))<br><br>And if you use slime-compile-defun on the (defun foo...) form, the following occurs:<br><br>While compiling FOO :<br>#1=(X) is not a symbol or lambda expression in the form (#1# (1+ X)) .<br>

   [Condition of type CCL::COMPILE-TIME-PROGRAM-ERROR]<br><br>I'm posting this here because none of the above errors happen in SBCL, so there would seem to be something specific about the combination of Slime and CCL that doesn't like this macro. Does anyone have any ideas or suggestions?<br>

<br>Thank you,<br><br>Daniel Gackle<br><br>