[gambit-list] JavaScriptScheme: too much recursion

Catherine Gaudron gaudronc at iro.umontreal.ca
Mon Jun 2 14:05:35 EDT 2008


If I remember correctly, the code works under Safari and Opera (never 
tested it on IE).
After some testing I was able to compile simple things such as (display 
"hello") by removing the compiler from the run-time, but anything more 
complicated then a simple display will give the too much recursion error.

Catherine

James Long wrote:
> 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