jscl-project / jscl

A Lisp-to-JavaScript compiler bootstrapped from Common Lisp

Home Page:https://jscl-project.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Macro lambda lists aren't parsed quite right in general

brpocock opened this issue · comments

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 notifications@github.com
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
#243 (comment),
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.