[plt-scheme] 301.4

From: Eli Barzilay (eli at barzilay.org)
Date: Wed Feb 1 16:45:05 EST 2006

On Feb  1, Noel Welsh wrote:
> --- Hans Oesterholt-Dijkema <hdnews at gawab.com> wrote:
> > GNU Lightning uses a RISC instruction set. This could be
> > hard to optimize for a CISC architecture. Could it be
> > that this is a cause of the small speed gain?
> I doubt it.

Same here.

> [...]  I think the main reason for poor performance from Lightning
> is that it generates quite poor code.  The emphasis on speed of
> compilation seems to have resulted in an instruction set choice that
> is the intersection of that on all platforms, and so is relatively
> inexpressive. [...]
> The code generation is a direct translation from lightning
> instructions to assembler [...]

Yes -- lightning is *not* a compiler, it's just a code emitter.  It
does not do any kind of optimization, and it doesn't do that very
explicitly.  Each lightning operation is simply translated for the
actual machine code for your platform.  The whole thing is actually
written as a bunch of CPP macros.

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

Posted on the users mailing list.