define-compiler-macro does not define macro when not invoked in top-level
The define-compiler-macro macro does not create a new binding when it appears as a non top-level form.
(progn (define-compiler-macro foo ()) (foo)) ; results in undefined-function signalled.
(defun x () (define-compiler-macro bar ()))
(x)
(bar) ; another error
I've been using the latest ECL from Development branch ( bfeec4aa ).