[parenscript-devel] Lexical scoping with LAMBDA

Red Daly reddaly at gmail.com
Tue Sep 6 23:45:17 UTC 2011


Bugs are a major theme on this list.  As far as I know, Parenscript lacks
unit tests that run the compiled Javascript code. Is that still correct?
 Perhaps it is time to introduce this feature?  There are a few options
here:

- cl-javascript is a pure lisp implementation of ECMAScript, and it actually
works for most normal language cases
- cl-spidermonkey uses the FFI to interact with Mozilla's JS engine
- v8, either through the FFI or a simple command line

This should allow the project to test much more rigorously than the current
kinda kludgy test framework.

As a reference, I currently do this in PSOS:
https://github.com/gonzojive/paren-psos/blob/master/test/test-package.lisp

- Red

On Tue, Sep 6, 2011 at 11:48 PM, <sblist at me.com> wrote:

> It appears as though there might be a gap in the lexical scoping
> implementation in the compiler:
>
> (ps (lambda (x)
>      (let ((x 1))
>        (foo x))
>      (incf x)))
> =>
> "function (x) {
>    var x = 1;
>    foo(x);
>    return ++x;
> };"
>
> vs.
>
> (ps (let ((x 10))
>      (let ((x 1))
>        (foo x))
>      (incf x)))
>
> "var x = 10;
> var x33 = 1;
> foo(x33);
> ++x;"
>
> Although function parameters have their own lexical bindings,
> the environment still needs to be informed of those bindings
> so that LET forms in the function body can rename any conflicts.
>
>        Scott
>
> _______________________________________________
> parenscript-devel mailing list
> parenscript-devel at common-lisp.net
> http://lists.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/20110907/32a4ff05/attachment.html>


More information about the parenscript-devel mailing list