I'm using CCL. It's certainly possible that some custom code<div>escaped my efforts to run the tests cleanly. I'll try again and report back.<br><br><div class="gmail_quote">On Mon, May 24, 2010 at 7:52 PM, Vladimir Sedach <span dir="ltr"><<a href="mailto:vsedach@gmail.com">vsedach@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Which implementation are you running on? I know there are differences<br>
in output related to the gensym counter and macroexpansion time<br>
between SBCL and CLISP/Clozure (I write tests based on the output of<br>
the former).<br>
<br>
Are you sure you're not using any custom code? In particular this piece:<br>
<br>
['javascript:', 'transport()'].join('')<br>
<br>
leads me to believe you might have at least a custom CONCATENATE<br>
loaded. But a lot of the errors listed look like real bugs. I just<br>
tried the test suite in CLISP and it gives a different list of errors,<br>
and many of them aren't just gensym differences but real bugs as well.<br>
<br>
I guess I'll need to spend some time fixing these<br>
compile/load/macroexpand problems.<br>
<br>
Vladimir<br>
<br>
2010/5/24 Daniel Gackle <<a href="mailto:danielgackle@gmail.com">danielgackle@gmail.com</a>>:<br>
<div><div></div><div class="h5">> I'm happy to add tests for bug fixes etc. that I push, so I tried compiling<br>
> and running the PS test suite. It requires the Arnesi and FiveAM libraries,<br>
> so I downloaded and asdf-loaded those, then called (RUN-TESTS).<br>
> The output I got seems to include many failures. How many of these<br>
> are actual failures in the official tests, and how many are glitches local<br>
> to me?<br>
> Since we have many custom PS macros, I was careful to run<br>
> these in a Lisp that only loaded the PARENSCRIPT-TEST package.<br>
> Daniel<br>
><br>
><br>
> Running reference tests:<br>
> ...............f....................................................................f....<br>
> Did 89 checks.<br>
> Pass: 87 (97%)<br>
> Skip: 0 ( 0%)<br>
> Fail: 2 ( 2%)<br>
> Failure Details:<br>
> --------------------------------<br>
> THE-HTML-GENERATOR-3 []:<br>
> (NORMALIZE-JS-CODE "document.write('<A HREF=\"#\" ONCLICK=\"' +<br>
> 'javascript:' + 'transport()' + '\">link</A>');") evaluated to<br>
> "document.write('<A HREF=\"#\" ONCLICK=\"' + 'javascript:' + 'transport()' +<br>
> '\">link</A>');", which is not STRING= to "document.write('<A HREF=\"#\"<br>
> ONCLICK=\"' + ['javascript:', 'transport()'].join('') + '\">link</A>');"..<br>
> --------------------------------<br>
> --------------------------------<br>
> ASSIGNMENT-11 []:<br>
> (NORMALIZE-JS-CODE "var _js2 = someDiv;<br>
> var _js1 = 123 + 'px';<br>
> _js2.style.left = _js1;") evaluated to "var _js2 = someDiv; var _js1 = 123 +<br>
> 'px'; _js2.style.left = _js1;", which is not STRING= to "left(someDiv) = 123<br>
> + 'px';"..<br>
> --------------------------------<br>
> Running other tests:<br>
> .................................................................................................f............ff.....f...............f.......................................................................f.f....<br>
> ;Compiler warnings :<br>
> ; In an anonymous lambda form: Undeclared free variable<br>
> X..f.......f........<br>
> Did 231 checks.<br>
> Pass: 222 (96%)<br>
> Skip: 0 ( 0%)<br>
> Fail: 9 ( 3%)<br>
> Failure Details:<br>
> --------------------------------<br>
> VALUES2 []:<br>
> (NORMALIZE-JS-CODE "var val1_1 = x;<br>
> var valrest2 = [y];<br>
> if (undefined !== arguments['callee']['caller']['mv']) {<br>
> arguments['callee']['caller']['mv'] = valrest2;<br>
> };<br>
> val1_1;") evaluated to "var val1_1 = x; var valrest2 = [y]; if (undefined<br>
> !== arguments['callee']['caller']['mv']) {<br>
> arguments['callee']['caller']['mv'] = valrest2; }; val1_1;", which is not<br>
> STRING= to "var val1_1 = x; var valrest2 = [y]; if (undefined !==<br>
> <a href="http://arguments.callee.caller.mv" target="_blank">arguments.callee.caller.mv</a>) { <a href="http://arguments.callee.caller.mv" target="_blank">arguments.callee.caller.mv</a> = valrest2; };<br>
> val1_1;"..<br>
> --------------------------------<br>
> --------------------------------<br>
> VALUES3 []:<br>
> (NORMALIZE-JS-CODE "var val1_1 = x;<br>
> var valrest2 = [y, z];<br>
> if (undefined !== arguments['callee']['caller']['mv']) {<br>
> arguments['callee']['caller']['mv'] = valrest2;<br>
> };<br>
> val1_1;") evaluated to "var val1_1 = x; var valrest2 = [y, z]; if (undefined<br>
> !== arguments['callee']['caller']['mv']) {<br>
> arguments['callee']['caller']['mv'] = valrest2; }; val1_1;", which is not<br>
> STRING= to "var val1_1 = x; var valrest2 = [y, z]; if (undefined !==<br>
> <a href="http://arguments.callee.caller.mv" target="_blank">arguments.callee.caller.mv</a>) { <a href="http://arguments.callee.caller.mv" target="_blank">arguments.callee.caller.mv</a> = valrest2; };<br>
> val1_1;"..<br>
> --------------------------------<br>
> --------------------------------<br>
> VALUES-RETURN []:<br>
> (NORMALIZE-JS-CODE "var val1_1 = x;<br>
> var valrest2 = [y];<br>
> if (undefined !== arguments['callee']['caller']['mv']) {<br>
> arguments['callee']['caller']['mv'] = valrest2;<br>
> };<br>
> return val1_1;") evaluated to "var val1_1 = x; var valrest2 = [y]; if<br>
> (undefined !== arguments['callee']['caller']['mv']) {<br>
> arguments['callee']['caller']['mv'] = valrest2; }; return val1_1;", which is<br>
> not STRING= to "var val1_1 = x; var valrest2 = [y]; if (undefined !==<br>
> <a href="http://arguments.callee.caller.mv" target="_blank">arguments.callee.caller.mv</a>) { <a href="http://arguments.callee.caller.mv" target="_blank">arguments.callee.caller.mv</a> = valrest2; };<br>
> return val1_1;"..<br>
> --------------------------------<br>
> --------------------------------<br>
> EVAL-WHEN-MACROLET-EXPANSION []:<br>
> *LISP-OUTPUT* evaluated to ORIGINAL-VALUE, which is not EQL to<br>
> :CL-USER..<br>
> --------------------------------<br>
> --------------------------------<br>
> EVAL-WHEN-MACRO-EXPANSION []:<br>
> *LISP-OUTPUT* evaluated to ORIGINAL-VALUE, which is not EQL to<br>
> :CL-USER..<br>
> --------------------------------<br>
> --------------------------------<br>
> MV-BIND1 []:<br>
> (NORMALIZE-JS-CODE "returnsMv();<br>
> var prevmv2 = arguments['callee']['mv'];<br>
> try {<br>
> arguments['callee']['mv'] = true;<br>
> var a = doesnt();<br>
> var mv1 = typeof arguments['callee']['mv'] === 'object' ?<br>
> arguments['callee']['mv'] : new Array(1);<br>
> var b = mv1[0];<br>
> alert(a);<br>
> alert(b);<br>
> } finally {<br>
> if (undefined === prevmv2) {<br>
> delete arguments['callee']['mv'];<br>
> } else {<br>
> arguments['callee']['mv'] = prevmv2;<br>
> };<br>
> };") evaluated to "returnsMv(); var prevmv2 = arguments['callee']['mv']; try<br>
> { arguments['callee']['mv'] = true; var a = doesnt(); var mv1 = typeof<br>
> arguments['callee']['mv'] === 'object' ? arguments['callee']['mv'] : new<br>
> Array(1); var b = mv1[0]; alert(a); alert(b); } finally { if (undefined ===<br>
> prevmv2) { delete arguments['callee']['mv']; } else {<br>
> arguments['callee']['mv'] = prevmv2; }; };", which is not STRING= to<br>
> "returnsMv(); var prevmv2 = <a href="http://arguments.callee.mv" target="_blank">arguments.callee.mv</a>; try { <a href="http://arguments.callee.mv" target="_blank">arguments.callee.mv</a> =<br>
> true; var a = doesnt(); var mv1 = typeof <a href="http://arguments.callee.mv" target="_blank">arguments.callee.mv</a> === 'object' ?<br>
> <a href="http://arguments.callee.mv" target="_blank">arguments.callee.mv</a> : new Array(1); var b = mv1[0]; alert(a); alert(b); }<br>
> finally { if (undefined === prevmv2) { delete <a href="http://arguments.callee.mv" target="_blank">arguments.callee.mv</a>; } else {<br>
> <a href="http://arguments.callee.mv" target="_blank">arguments.callee.mv</a> = prevmv2; }; };"..<br>
> --------------------------------<br>
> --------------------------------<br>
> EVAL-WHEN-LISP-SIDE []:<br>
> *LISP-OUTPUT* evaluated to ORIGINAL-VALUE, which is not EQL to<br>
> IT-WORKS..<br>
> --------------------------------<br>
> --------------------------------<br>
> EVAL-WHEN-LISP-SIDE []:<br>
> JS-OUTPUT evaluated to "LISPOUTPUT = 'itWorks';", which is not STRING=<br>
> to ""..<br>
> --------------------------------<br>
> --------------------------------<br>
> FUNCALL-IF-EXPRESSION []:<br>
> (NORMALIZE-JS-CODE "document.write(LINKORNOT === 1 ? '<A HREF=\"#\"<br>
> ONCLICK=\"' + 'javascript:' + 'transport()' + '\">' + img + '</A>' : img);")<br>
> evaluated to "document.write(LINKORNOT === 1 ? '<A HREF=\"#\" ONCLICK=\"' +<br>
> 'javascript:' + 'transport()' + '\">' + img + '</A>' : img);", which is not<br>
> STRING= to "document.write(LINKORNOT === 1 ? '<A HREF=\"#\" ONCLICK=\"' +<br>
> ['javascript:', 'transport()'].join('') + '\">' + img + '</A>' : img);"..<br>
> --------------------------------<br>
> Running Package System tests:<br>
> f.f..f..<br>
> Did 8 checks.<br>
> Pass: 5 (62%)<br>
> Skip: 0 ( 0%)<br>
> Fail: 3 (37%)<br>
> Failure Details:<br>
> --------------------------------<br>
> NAMESPACE-AND-SPECIAL-FORMS []:<br>
> (PARENSCRIPT-TEST::NORMALIZE-JS-CODE "var prefix_foo = { prefix_bar :<br>
> 1, prefix_notAKeyword : prefix_something };<br>
> return !prefix_foo && prefix_foo.prefix_bar + prefix_someOtherVar;")<br>
> evaluated to "var prefix_foo = { prefix_bar : 1, prefix_notAKeyword :<br>
> prefix_something }; return !prefix_foo && prefix_foo.prefix_bar +<br>
> prefix_someOtherVar;", which is not COMMON-LISP:STRING= to "var foo = { bar<br>
> : 1, notAKeyword : something }; return !foo && foo.bar + someOtherVar;"..<br>
> --------------------------------<br>
> --------------------------------<br>
> OBFUSCATION1 []:<br>
> (NORMALIZE-JS-CODE "function g1(a, b, g2) {<br>
> return a + my_library_libraryFunction(b, g2);<br>
> };") evaluated to "function g1(a, b, g2) { return a +<br>
> my_library_libraryFunction(b, g2); };", which is not STRING= to "function<br>
> g1(a, b, g1) { return a + my_library_libraryFunction(b, g1); };"..<br>
> --------------------------------<br>
> --------------------------------<br>
> EXPORTED-INTERFACE []:<br>
> (PARENSCRIPT-TEST::NORMALIZE-JS-CODE "function<br>
> interfaceFunction(prefix_baz) {<br>
> return prefix_baz + g2;<br>
> };") evaluated to "function interfaceFunction(prefix_baz) { return<br>
> prefix_baz + g2; };", which is not COMMON-LISP:STRING= to "function<br>
> interfaceFunction(baz) { return baz + g1; };"..<br>
> --------------------------------<br>
> NIL<br>
> PS-TEST><br>
</div></div>> _______________________________________________<br>
> parenscript-devel mailing list<br>
> <a href="mailto:parenscript-devel@common-lisp.net">parenscript-devel@common-lisp.net</a><br>
> <a href="http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
><br>
><br>
<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://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
</blockquote></div><br></div>