[Ecls-list] macroexpansion patch

Brian Spilsbury brian.spilsbury at gmail.com
Mon May 8 08:11:03 UTC 2006


The local function definition does not shadow the global macro
definition, so the following fails.

(defmacro foo () die)
(defun test ()
  (flet ((foo () 1))
    (foo)))

The problem is in search_macro() which cannot easily differentiate the
shadowing case from the absent case.

Since this is only used in two places and the code is trivial I have
inlined the C code by hand, adding the extra test which allows it to
return directly.

You may wish to restructure the code.

Regards,
Brian.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.4
Type: application/octet-stream
Size: 828 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20060508/fa101564/attachment.obj>


More information about the ecl-devel mailing list