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
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@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@common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
>
>
_______________________________________________
parenscript-devel mailing list
parenscript-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel