[parenscript-devel] Bug: macroexpansion broken by lexical scoping change

Daniel Gackle danielgackle at gmail.com
Sun May 10 02:40:13 UTC 2009


Given the recent bug fixes, I tried to upgrade PS again. I'm now
encountering an error on trying to expand a simple loop form. The error
appears in commit 5a69278.

(ps-macroexpand '(loop for x from 1 below 10 do (bah)))

=>
(NIL . #<Anonymous Function #x300042319FEF>) is not of type (OR
                                                             SYMBOL
                                                             FUNCTION), and
can't be FUNCALLed or APPLYed
[Condition of type TYPE-ERROR]

Daniel

On Sat, May 9, 2009 at 5:29 PM, Vladimir Sedach <vsedach at gmail.com> wrote:

> 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
> >
> >
>
> _______________________________________________
> parenscript-devel mailing list
> parenscript-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/parenscript-devel/attachments/20090509/242ec150/attachment.html>


More information about the parenscript-devel mailing list