[Ecls-list] flet/labels compiler/interpreter inconsistency patch

Brian Spilsbury brian.spilsbury at gmail.com
Tue May 9 16:13:02 UTC 2006


This patches the compiler to use the form (NAME KIND VALUE) in the
environment for macros and functions, as well as to consider functions
and macros to shadow one another lexically.

This depends on the earlier patch which patches macroexpand for the interpreter.

; After patching this should be fine
(defmacro foo () die)
(defun test ()
  (flet ((foo () 1))
    (foo)))

; this should be fine, too
(defun test2 ()
  (macrolet ((foo () die))
    (flet ((foo () 1))
      (foo))))

; this should have an undefined variable 'die'
(defun test3 ()
  (flet ((foo () 1))
    (macrolet ((foo () die))
      (foo))))

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


More information about the ecl-devel mailing list