Some recent git update in ECL has changed its behavior in the following
(defmacro def (name &key (declare '(optimize (speed 3) (safety 1))))
`(defun ,name ()
,(format nil "docstring here")
;; OK, the macro is defined
(macroexpand-1 '(def a))
==> (DEFUN A () "docstring here" (DECLARE (OPTIMIZE (SPEED 3) (SAFETY 1))) 10)
The function SPEED is undefined.
1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at A. In: #<process SI:TOP-LEVEL 0000000000741f60>.
I don't know why exactly ECL is trying to eval "(SPEED 3)". Other Common Lisp
implementations don't seem to do that (SBCL, CLisp, ABCL, CCL).
So, I wonder if it's a bug in ECL or a bug in my code. :-)
 Some weeks or months ago; I can't tell exactly when.