That's a good point. Also, this would be a major, if auxiliary, advantage of a self-hosted PS.<div><br></div><div>Daniel<br><div><br><div class="gmail_quote">On Tue, Sep 6, 2011 at 5:45 PM, Red Daly <span dir="ltr"><<a href="mailto:reddaly@gmail.com">reddaly@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">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:<div>


<br></div><div>- cl-javascript is a pure lisp implementation of ECMAScript, and it actually works for most normal language cases</div><div>- cl-spidermonkey uses the FFI to interact with Mozilla's JS engine</div><div>


- v8, either through the FFI or a simple command line</div><div><br></div><div>This should allow the project to test much more rigorously than the current kinda kludgy test framework.</div><div><br></div><div>As a reference, I currently do this in PSOS: <a href="https://github.com/gonzojive/paren-psos/blob/master/test/test-package.lisp" target="_blank">https://github.com/gonzojive/paren-psos/blob/master/test/test-package.lisp</a></div>


<div><br></div><font color="#888888"><div>- Red</div></font><div><div></div><div class="h5"><div><br><div class="gmail_quote">On Tue, Sep 6, 2011 at 11:48 PM,  <span dir="ltr"><<a href="mailto:sblist@me.com" target="_blank">sblist@me.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
It appears as though there might be a gap in the lexical scoping<br>
implementation in the compiler:<br>
<br>
(ps (lambda (x)<br>
      (let ((x 1))<br>
        (foo x))<br>
      (incf x)))<br>
=><br>
"function (x) {<br>
    var x = 1;<br>
    foo(x);<br>
    return ++x;<br>
};"<br>
<br>
vs.<br>
<br>
(ps (let ((x 10))<br>
      (let ((x 1))<br>
        (foo x))<br>
      (incf x)))<br>
<br>
"var x = 10;<br>
var x33 = 1;<br>
foo(x33);<br>
++x;"<br>
<br>
Although function parameters have their own lexical bindings,<br>
the environment still needs to be informed of those bindings<br>
so that LET forms in the function body can rename any conflicts.<br>
<br>
        Scott<br>
<br>
_______________________________________________<br>
parenscript-devel mailing list<br>
<a href="mailto:parenscript-devel@common-lisp.net" target="_blank">parenscript-devel@common-lisp.net</a><br>
<a href="http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
</blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
parenscript-devel mailing list<br>
<a href="mailto:parenscript-devel@common-lisp.net">parenscript-devel@common-lisp.net</a><br>
<a href="http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
<br></blockquote></div><br></div></div>