[gambit-list] JavaScriptScheme: too much recursion

James Long james.long at coptix.com
Sun Jun 1 22:59:46 EDT 2008


It happens (for me) with any JSS file - the runtime code itself is  
generating the error.  Even a simple JSS file with the code `(display  
"Hello World")' causes the error.  That doesn't happen for you?  I  
tried disabling Firebug or anything else that might be causing the  
problem, but it still happens.  I looked around for the Javascript  
error on the net and I couldn't find any oddities about it.  Are you  
testing Firefox on OS X?  It happens for me on Firefox 2 & 3 on OS X  
Leopard.

It works under Safari, and I can't test IE at the moment.

I was indeed able to reproduce the same Javascript error by kicking  
the stack depth over 5000.

I'd love to study the compiler at some point - when I do that maybe  
I'll try to give a better bug report.

- James

On May 31, 2008, at 9:09 AM, Marc Feeley wrote:

> JSS uses CPS conversion and trampolines, so the call graph is  
> (should be?) of a small constant depth.  I don't know why you are  
> getting a "too much recursion error".  The only thing I can think of  
> is that the JavaScript code itself is too heavily nested  
> (syntactically) and the JavaScript interpreter/compiler overflows  
> the compile-time stack while parsing/compiling the code.  Does the  
> problem occur for large files only?  Have you tried JSS on other  
> browsers?  I'm curious which ones encounter the same problem.  Do  
> you have a test case I can try?
>
> Marc
>
> On 30-May-08, at 3:51 PM, James Long wrote:
>
>> Hey Marc (or anyone who has used Jss from the Dumping Grounds on the
>> wiki),
>>
>> I grabbed your scheme-to-javascript compiler off the dumping grounds,
>> and it works great in Safari.  In Firefox 2 & 3 however, the
>> javascript engine throws the error "too much recursion."  I will be
>> looking through the code myself, but do you think there's a fix?  If
>> it's a real stack overflow error (not from an infinite loop), you
>> could do some optimizing before spitting out the Javascript.  This
>> might get too involved, and the compiler might not have all the
>> information to make guesses at inlining, etc.  I haven't studied CPS-
>> transforming compilers enough yet.
>>
>> - James
>> _______________________________________________
>> Gambit-list mailing list
>> Gambit-list at iro.umontreal.ca
>> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>




More information about the Gambit-list mailing list