Douglas Katzman <dougk@...> writes:
> 1. Missing syntax check of FUNCTION special form when compiler-macro exists.
> (defun hairy (x) #|... whatever ... |# x)
> (defun really-fn (x) x)
> (define-compiler-macro hairy (x) `(really-fn ,x))
> (defun testme (x)
> (funcall (function hairy frob) x)) ; compiles a call to really-fn with no
> This fixes it:
> 2. If a SETF function is defined first, a later macro definition gets a
> style warning, but the opposite is not true. This order warns:
> * (defun (setf foocount) (newval something) something newval)
> * (defsetf foocount %set-foocount)
> This order doesn't:
> * (defsetf frobcount %set-frobcount)
> * (defun (setf frobcount) (newval something) something newval)
> A slightly noisy solution is below. Noisy because you get 2 warnings
> instead of 1. This is due to separate calls to NOTE-IF-SETF-FUN-AND-MACRO,
> one from PROCLAIM-AS-FUN-NAME and one from FIND-FREE-FUN each complaining.
> It would be nice not to do that.
Committed both. Couldn't find a nice way to prevent multiple
With best regards, Stas.