This is the mail archive of the guile@sources.redhat.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: How fast will the Guile VM be?



> 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]