[racket-dev] LLVM

From: Eli Barzilay (eli at barzilay.org)
Date: Tue Aug 3 06:25:31 EDT 2010

On Aug  3, Paul Steckler wrote:
> On Tue, Aug 3, 2010 at 10:41 AM, Matthias Felleisen
> <matthias at ccs.neu.edu> wrote:
> > Eli and an undergraduate (Alex Friedman) started on this a few
> > years ago and got reasonably far. They could compile a bunch of
> > small stuff, and the LLVM developer was highly responsive to
> > requests back then (still at UIUC).

It wasn't actually compiling code, it was more a scheme-like assembly
language which got far enough to run useful bits of code.  We also had
a lightning interface before the LLVM thing.

> > But Matthew's effort on jitting via gnu lightning was better and
> > so the llvm project was abandoned.

Matthew actually wrote a jitter for bytecode, and lightning turned out
fine for that.  LLVM has a nice interface and lots of optimizations
(some tied to how it represents assembly code) -- but the system
itself is pretty big, which made it much less appealing as a target
for jitting.  (It's roughly like swallowing GCC into Racket.)

> Interesting; I wasn't aware of GNU lightning.
> Does that mean that mzc currently targets lightning, or is that just
> used in the JIT?

Both of these are unrelated to mzc -- and the current use of lightning
is only for jitting.  If you're talking about using the LLVM C
compiler, then that's a different issue (and I think that some people
have tried that, but I don't remember who or whether it was

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.