JIT compiler for Scheme targeting x86-64 platforms.
- Baptiste Saleil and Marc Feeley. Interprocedural Specialization of Higher-Order Dynamic Languages Without Static Analysis. In European Conference on Object-Oriented Programming (ECOOP'17), 2017.
[pdf] - Baptiste Saleil and Marc Feeley. Type Check Removal Using Lazy Interprocedural Code Versioning. In Scheme and Functional Programming Workshop (SFPW'15), 2015.
[pdf] - Baptiste Saleil and Marc Feeley. Code Versioning and Extremely Lazy Compilation of Scheme. In Scheme and Functional Programming Workshop (SFPW'14), 2014.
[pdf]
A recent version of Gambit (probably >= 4.8.6) must be installed.
git clone https://github.com/bsaleil/lc.git
cd lc
make -j8
./lc file.scm
To compute the 40th Fibonacci number:
(define (fib n)
(if (< n 2)
1
(+ (fib (- n 1))
(fib (- n 2)))))
(println (fib 40))
$ time ./lc fib.scm
165580141
real 0m0,550s
user 0m0,537s
sys 0m0,010s