[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Gabriel benchmarks in Scheme



Rich Fateman writes:

       I find it unfortunate that people feel they have to understand code
       in MacLisp in order to translate it into Scheme.
       Can't this be done automatically?

I don't want to disparage the Macsyma code (and I have the greatest
respect for the memory of Bill Martin), but it is not a good idea to
run benchmarks based on code that one doesn't understand, whether or
not the translation to Scheme is done automatically.

The most striking example of this is the Gabriel Boyer-Moore
benchmark, which always

(a) returns as its value the value of a PROG that falls off the end
(e.g., ALWAYS produces NIL)

(b) follows a computation path that turns out to depend upon the
default test used by MEMBER.  MacLisp and ZetaLisp here use EQUAL and
CL uses EQL.  Because of this, initially people at Symbolics thought
that one of their implementations ran this benchmark much faster than
the other -- it turned out that the two implementations were following
completely different execution paths.

Figuring out these bugs wasted a lot of time on the part of Sussman
and Don Allen.

Given that the Scheme community is trying to avoid the
over-complexities of Common Lisp, it is not too inappropriate for us
to give some effort to using understandable benchmarks.