jscl
jscl copied to clipboard
Macro lambda lists aren't parsed quite right in general
Test example:
(defmacro x (y &optional (&rest z)) `(print ,y))
(x y)
Signals an error that Z is unbound.
This particularly affects definition of ASSERT, although I have a simplified ASSERT that can be used without the var-list and message optional args.
Not all lambda expressions are implemented, just the ordinary lambda-expressions, and probably is not even complete.
That means we should improve https://github.com/jscl-project/jscl/blob/master/src/lambda-list.lisp to support other lambda-lists.
Full list:
http://www.lispworks.com/documentation/lw60/CLHS/Body/03_d.htm
Just to note, I seem to think the "presentp" third part of regular &optional is probably also not working correctly.
On Thu, Aug 11, 2016, 11:22 David Vázquez Púa [email protected] wrote:
Not all lambda expressions are implemented, just the ordinary lambda-expressions, and probably is not even complete.
That means we should improve https://github.com/jscl-project/jscl/blob/master/src/lambda-list.lisp to support other lambda-lists.
Full list:
http://www.lispworks.com/documentation/lw60/CLHS/Body/03_d.htm
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jscl-project/jscl/issues/243#issuecomment-239194865, or mute the thread https://github.com/notifications/unsubscribe-auth/AB-HO5XyIN6OQQOH_ZdTU9xJzcb1iZTNks5qez5IgaJpZM4JgzKm .
That is a bug. I have fixed it now.
The whole lambda compilation is pretty messy. There is also redundant logic with lambda-list.lisp. It needs some work.