[plt-scheme] Native code generation and immutable pairs

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Fri Feb 10 10:39:31 EST 2006

On Feb 10, 2006, at 9:41 AM, Noel Welsh wrote:

> --- Jim Blandy <jimb at red-bean.com> wrote:
>> Speaking from absolutely no real experience, I firmly
>> believe that you
>> have to assess the value of an analysis or optimization
>> in terms of
>> how well it will fit in and complement the other stuff
>> you've already got in place.
> Agreed (with all parts, including 'absolutely no real
> experience' :).  I think the point to draw from Manuel's
> results are that type tests take up a fairly large amount
> of time (at least in the type of programs used in the
> benchmarks but I think these results should generalise).
> Given that the MzScheme compiler performs practically no
> optimisations (at least it did last time I looked) this
> optimisation should be a win for mzc.

Please take a very close look at the constraints that
bigloo modules impose on Scheme code. I am almost certain
that these results do not carry over to other Scheme

With Andrew's soft type Scheme system (based on Chez),
we could create speedups on benchmarks between 10% and
8x. The average, if I recall this correctly, got close
to 40% (someone can also look up the published number).

The problem:
  (1) these results are incredibly unstable wrt machine/os

  (2) these results are incredibly unstable wrt SYNTAX
      (a small change in how you write the program
      can make a difference of .1 or 2x)

  (3) Only people who truly understand and work with
      the system intensely can really squeeze this
      performance out. For Soft Scheme, there were
      three such people eventually: Andrew, I, and then

Over the last few years, I have become convince that
Matthew is right when he says "it's good if it speeds
up drscheme." He says so because drscheme is not a
benchmark, it's used on a daily basis, and the above
factors don't play this kind of role.

I hate compiler benchmarks.  -- Matthias

Posted on the users mailing list.