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

Gabriel benchmarks in Scheme

In the most recent issue of Lisp Pointers, Walter van Roggen asked implementors
to send in their most recent timings for the Gabriel benchmarks.  I would like
to encourage implementors of Scheme to respond to this request.

I have recently finished translating the Gabriel benchmarks (except for STAK,
which is a test of fluid variables, and FRPOLY, which is written "in a somewhat
unpleasant programming style" that is hard to understand or translate) into
Scheme.  Please let me know if you would like the source code.

Some of the benchmarks use property lists; I didn't try to change that, because
most implementations can mimic property lists.  At least one of them (BROWSE)
also assumes that CAR and CDR of the empty list is the empty list; I didn't
try to change that either.  Otherwise the benchmarks should be reasonably
portable.  They have been run in MacScheme.

I changed the CTAK benchmark, which tested both fluid binding and escapes,
into a straight test of CALL-WITH-CURRENT-CONTINUATION.  Otherwise the tests
measure pretty much the same things in Scheme as they do in Common Lisp.
(That's not to say I always understand what they are supposed to measure in
Common Lisp.)  Because the Gabriel benchmarks do not test first class
procedures and do use much tail-recursion, I have added a continuation-passing
version of TAK to the Scheme benchmarks.

peace, William Clinger
Tektronix Computer Research Lab