[parenscript-devel] Bug: macroexpansion broken by lexical scoping change
Vladimir Sedach
vsedach at gmail.com
Sat May 9 23:29:41 UTC 2009
Just pushed out a patch that fixes this. The solution turned out to be
a lot more involved than I originally suspected - basically the PS
compiler had to be refactored to give control of macroexpansion over
to special forms (the way it was previously handling macroexpansion
was quite naive, but would have been suitable for a single-namespace
Lisp).
The changes that have been going on in the recent while are starting
to make Parenscript almost look like a "real Lisp compiler."
Vladimir
On Wed, May 6, 2009 at 2:00 PM, Daniel Gackle <danielgackle at gmail.com> wrote:
> Here's one thing that the latest PS breaks in our code.
>
> (ps (list 1 2 3))
> =>
> "[1,2,3];"
>
> (ps (let ((list nil))
> (setf list (list 1 2 3))))
> =>
> "var list5180 = null;
> list5180 = list5180(1, 2, 3);"
>
> I think this behavior is incorrect. It is quite surprising for a lexical
> variable to shadow a macro definition.
>
> Daniel
>
> _______________________________________________
> parenscript-devel mailing list
> parenscript-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
>
>
More information about the parenscript-devel
mailing list