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