Eric Thivierge is in Copenhagen today, at the Scheme Workshop, presenting our latest paper:
"Efficient Compilation of Tail Calls and Continuations to JavaScript"
You can get the paper on the Scheme Worshop web page: http://users-cs.au.dk/danvy/sfp12/programme-sfp12.html
It describes the implementation of tail calls and continuations in Gambit-JS and evaluates its performance.
Even if you are not specifically interested in the JavaScript back-end the paper may be interesting to read as it provides a brief explanation of the Gambit Virtual Machine (GVM) and compiler front-end, and a complete example of compilation from Scheme, to GVM, to JavaScript.
The performance evaluation (see attached tables) shows that the approach used by Gambit-JS is consistently faster than Scheme2JS and Spock.
Marc
Execution times using V8 (Chrome 21.0.1180.89):
Gambit-JS Scheme2JS Spock
fib35 .80 1.54 1.9x 2.40 3.0x
nqueens12 .72 .76 1.1x 2.33 3.3x
oddeven .83 1.92 2.3x 5.62 6.8x
ctak .18 17.64 95.9x .59 3.2x
contfib30 1.17 106.01 90.9x 3.38 2.9x
btsearch2000 1.35 25.40 18.8x 7.93 5.9x
threads10 1.34 24.68 18.5x 4.40 3.3x
Execution times using JagerMonkey (Firefox 15.0.1):
Gambit-JS Scheme2JS Spock
fib35 1.07 7.66 7.2x 20.73 19.4x
nqueens12 1.49 2.62 1.8x 12.97 8.7x
oddeven 1.09 1.93 1.8x 33.91 31.1x
ctak 1.25 30.38 24.3x 1.86 1.5x
contfib30 5.88 156.79 26.7x 10.61 1.8x
btsearch2000 11.19 27.16 2.4x 16.54 1.5x
threads10 6.97 34.36 4.9x 22.11 3.2x
Execution times using Nitro (Safari 6.0):
Gambit-JS Scheme2JS Spock
fib35 1.32 6.53 4.9x 84.69 64.2x
nqueens12 1.31 1.89 1.4x 45.15 34.4x
oddeven 2.52 1.55 .6x 143.97 57.1x
ctak .30 52.88 177.4x 4.18 14.0x
contfib30 1.60 2311.69 1443.0x 25.98 16.2x
btsearch2000 3.46 102.98 29.7x 92.02 26.6x
threads10 3.03 74.21 24.5x 74.88 24.7x
_______________________________________________
Gambit-list mailing list
Gambit-list@iro.umontreal.ca
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list