summaryrefslogtreecommitdiff
path: root/gc-benchmarks/larceny/README
diff options
context:
space:
mode:
Diffstat (limited to 'gc-benchmarks/larceny/README')
-rw-r--r--gc-benchmarks/larceny/README92
1 files changed, 92 insertions, 0 deletions
diff --git a/gc-benchmarks/larceny/README b/gc-benchmarks/larceny/README
new file mode 100644
index 000000000..78639cd6c
--- /dev/null
+++ b/gc-benchmarks/larceny/README
@@ -0,0 +1,92 @@
+Source Code for Selected GC Benchmarks
+
+These benchmarks are derived from the benchmarks that Lars Hansen used for
+his thesis on Older-first garbage collection in practice . That thesis
+contains storage profiles and detailed discussion for most of these
+benchmarks.
+
+Portability
+
+Apart from a run-benchmark procedure, most of these benchmarks are intended
+to run in any R5RS-conforming implementation of Scheme. (The softscheme
+benchmark is an exception.) Please report any portability problems that you
+encounter.
+
+To find the main entry point(s) of a benchmark, search for calls to
+run-benchmark, which calculates and reports the run time and any other
+relevant statistics. The run-benchmark procedure is
+implementation-dependent; see run-benchmark.chez for an example of how to
+write it.
+
+GC Benchmarks
+
+To obtain a gzip'ed tar file containing source code for all of the
+benchmarks described below, click here .
+
+dummy
+ Description: A null benchmark for testing the implementation-specific
+ run-benchmark procedure.
+dynamic
+ Description: Fritz Henglein's algorithm for dynamic type inference.
+ Three inputs are available for this benchmark. In increasing order of
+ size, they are:
+ 1. dynamic.sch, the code for the benchmark itself
+ 2. dynamic-input-small.sch, which is macro-expanded code for the
+ Twobit compiler
+ 3. dynamic-input-large.sch, which is macro-expanded code for the
+ Twobit compiler and SPARC assembler.
+earley
+ Description: Earley's context-free parsing algorithm, as implemented by
+ Marc Feeley, given a simple ambiguous grammar, generating all the parse
+ trees for a short input.
+gcbench
+ Description: A synthetic benchmark originally written in Java by John
+ Ellis, Pete Kovac, and Hans Boehm.
+graphs
+ Description: Enumeration of directed graphs, possibly written by Jim
+ Miller. Makes heavy use of higher-order procedures.
+lattice
+ Description: Enumeration of lattices of monotone maps between lattices,
+ obtained from Andrew Wright, possibly written by Wright or Jim Miller.
+nboyer
+ Description: Bob Boyer's theorem proving benchmark, with a scaling
+ parameter suggested by Boyer, some bug fixes noted by Henry Baker and
+ ourselves, and rewritten to use a more reasonable representation for
+ the database (with constant-time lookups) instead of property lists
+ (which gave linear-time lookups for the most widely distributed form of
+ the boyer benchmark in Scheme).
+nucleic2
+ Description: Marc Feeley et al's Pseudoknot benchmark, revised to use
+ R5RS macros instead of implementation-dependent macro systems.
+perm
+ Description: Zaks's algorithm for generating a list of permutations.
+ This is a diabolical garbage collection benchmark with four parameters
+ M, N, K, and L. The MpermNKL benchmark allocates a queue of size K and
+ then performs M iterations of the following operation: Fill the queue
+ with individually computed copies of all permutations of a list of size
+ N, and then remove the oldest L copies from the queue. At the end of
+ each iteration, the oldest L/K of the live storage becomes garbage, and
+ object lifetimes are distributed uniformly between two volumes that
+ depend upon N, K, and L.
+sboyer
+ Description: This is the nboyer benchmark with a small but effective
+ tweak: shared consing as implemented by Henry Baker.
+softscheme
+ Description: Andrew's Wright's soft type inference for Scheme. This
+ software is covered by the GNU GENERAL PUBLIC LICENSE. This benchmark
+ is nonportable because it uses a low-level syntax definition to define
+ a non-hygienic defmacro construct. Requires an input file; the inputs
+ used with the dynamic and twobit benchmarks should be suitable.
+twobit
+ Description: A portable version of the Twobit Scheme compiler and
+ Larceny's SPARC assembler, written by Will Clinger and Lars Hansen. Two
+ input files are provided:
+ 1. twobit-input-short.sch, the nucleic2 benchmark stripped of
+ implementation-specific alternatives to its R4RS macros
+ 2. twobit.sch, the twobit benchmark itself
+twobit-smaller.sch
+ Description: The twobit benchmark without the SPARC assembler.
+
+----------------------------------------------------------------------------
+
+Last updated 4 April 2001.