Comment 3 for bug 1826607

Revision history for this message
Paul F. Dietz (paul-f-dietz) wrote :

What led to this was trying to use a generic function in the macroexpand hook. That seems a perfectly reasonable thing to want to do -- but the CLOS implementation compiles the effective method function on demand, and it happens to do that using the user defined macroexpand hook. Boom.

BTW, this is in service to a little project I have for a mutation testing framework for Common Lisp, done internally to CL. It's not contrived; it came up working on that project. The macroexpand hook will intercept macros like DEFUN and record information there at expansion time, to be used later when the function is mutated. I know Google has a mutation testing framework for Common Lisp (and other languages), tied into the code review process, but I suspect it's more text oriented.