This is the mail archive of the
guile@sources.redhat.com
mailing list for the Guile project.
Re: How fast will the Guile VM be?
- To: Keisuke Nishida <kxn30 at po dot cwru dot edu>
- Subject: Re: How fast will the Guile VM be?
- From: Jim Blandy <jimb at savonarola dot red-bean dot com>
- Date: 04 Sep 2000 14:02:07 -0500
- Cc: guile-user at gnu dot org
- List-Id: <guile-user.gnu.org>
- References: <m3ya1atukg.fsf@indy.STUDENT.CWRU.Edu>
> However, I don't think the VM is faster than native-code compilers.
> Dan said his goal with his new QScheme that uses a JIT compiler is to
> have scheme code run only two times slower than equivalent C code.
> On the other hand, I suppose some Scheme compilers produce native code
> that run as efficient as or faster than C programs, right? Do they
> have slower interpreters or no interpreter?
There are plenty of Scheme systems that produce native code. There's
even been a lot of work on optimizations almost irrelevant to C, but
critical to Scheme and similar languages.
- MIT Scheme does some pretty powerful program analysis. For example,
its compiler can detect that the Y-combinator represents an ordinary
loop. It certainly generates machine code. But I don't think its
back ends are especially good.
- Chez Scheme has a bunch of easy, clever ideas for generating good
machine code on the fly. See "Destination-Driven Code Generation",
available on http://www.cs.indiana.edu/~dyb/pubs.html. This paper
presents a straightforward way to generate machine code from a tree of
machine-level operations that, he claims, often doesn't need peephole
analysis.
- Will Clinger's home page, http://www.ccs.neu.edu/home/will/, contains
pointers to a very nice description of the optimizations done by
Twobit. The explanation of the `incremental lambda lifting'
optimization, which lets you eliminate a lot of closure generation, is
especially nice.
- If I remember correctly, Olin Shivers' PhD thesis was about
analyzing control flow in higher-order functional languages. Since
Scheme encourages people to build the control structures they need
from lambdas, these optimizations are quite relevant.
http://www.ai.mit.edu/~shivers/citations.html
> There are lots of Scheme compilers/interpreters, so I don't quite
> understand which one has what feature. Is there a good summary of
> features/benchmarks between several systems?
Will Clinger has some (according to Mr. Clinger) obsolete benchmarks
at: http://www.ccs.neu.edu/home/will/Twobit/benchmarks.html
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user