Skip to content

bsaleil/lc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lc

Build Status

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]

Building

A recent version of Gambit (probably >= 4.8.6) must be installed.

git clone https://github.com/bsaleil/lc.git
cd lc
make -j8

Running

./lc file.scm

Example

To compute the 40th Fibonacci number:

fib.scm:

(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