[parenscript-devel] Lexical scoping with LAMBDA

Daniel Gackle danielgackle at gmail.com
Wed Sep 7 02:27:02 UTC 2011


That's a good point. Also, this would be a major, if auxiliary, advantage of
a self-hosted PS.

Daniel

On Tue, Sep 6, 2011 at 5:45 PM, Red Daly <reddaly at gmail.com> wrote:

> 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
>>
>
>
> _______________________________________________
> 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/20110906/113e5dc4/attachment.html>


More information about the parenscript-devel mailing list