1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00
guile/gc-benchmarks/larceny
Morgan Smith f27e8b855f
Fix typos throughout codebase.
* NEWS:
* doc/ref/api-control.texi:
* doc/ref/api-data.texi:
* doc/ref/api-debug.texi:
* doc/ref/api-deprecated.texi:
* doc/ref/api-evaluation.texi:
* doc/ref/api-foreign.texi:
* doc/ref/api-i18n.texi:
* doc/ref/api-io.texi:
* doc/ref/api-languages.texi:
* doc/ref/api-macros.texi:
* doc/ref/api-memory.texi:
* doc/ref/api-modules.texi:
* doc/ref/api-options.texi:
* doc/ref/api-peg.texi:
* doc/ref/api-procedures.texi:
* doc/ref/api-scheduling.texi:
* doc/ref/api-undocumented.texi:
* doc/ref/api-utility.texi:
* doc/ref/expect.texi:
* doc/ref/goops.texi:
* doc/ref/misc-modules.texi:
* doc/ref/posix.texi:
* doc/ref/repl-modules.texi:
* doc/ref/scheme-ideas.texi:
* doc/ref/scheme-scripts.texi:
* doc/ref/srfi-modules.texi:
* gc-benchmarks/larceny/dynamic.sch:
* gc-benchmarks/larceny/twobit-input-long.sch:
* gc-benchmarks/larceny/twobit.sch:
* libguile/gc.h:
* libguile/ioext.c:
* libguile/list.c:
* libguile/options.c:
* libguile/posix.c:
* libguile/threads.c:
* module/ice-9/boot-9.scm:
* module/ice-9/optargs.scm:
* module/ice-9/ports.scm:
* module/ice-9/pretty-print.scm:
* module/ice-9/psyntax.scm:
* module/language/elisp/parser.scm:
* module/language/tree-il/compile-bytecode.scm:
* module/srfi/srfi-37.scm:
* module/srfi/srfi-43.scm:
* module/statprof.scm:
* module/texinfo/reflection.scm:
* test-suite/tests/eval.test:
* test-suite/tests/fluids.test:
Fix typos.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-05-06 11:51:53 +02:00
..
dumb.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2009-01-12 23:31:50 +01:00
dummy.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2008-11-10 22:37:56 +01:00
dynamic-input-large.sch Fix invalid syntax in `dynamic-input-large.sch' (gc-benchmarks). 2009-09-03 00:59:57 +02:00
dynamic-input-small.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2009-01-12 23:31:50 +01:00
dynamic.sch Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
earley.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2009-01-12 23:31:50 +01:00
gcbench.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2009-01-12 23:31:50 +01:00
gcold.scm gc-benchmarks: Adapt `gcold.scm' so that if conforms to the framework. 2009-01-12 23:31:50 +01:00
GPL Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2008-11-10 22:37:56 +01:00
graphs.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2008-11-10 22:37:56 +01:00
lattice.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2008-11-10 22:37:56 +01:00
nboyer.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2008-11-10 22:37:56 +01:00
nucleic2.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2009-01-12 23:31:50 +01:00
perm.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2008-11-10 22:37:56 +01:00
README Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2008-11-10 22:37:56 +01:00
run-benchmark.chez Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2008-11-10 22:37:56 +01:00
sboyer.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2008-11-10 22:37:56 +01:00
softscheme.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2009-01-12 23:31:50 +01:00
twobit-input-long.sch Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00
twobit-input-short.sch Import GC benchmarks from Larceny, by Hansen, Clinger, et al. 2009-01-12 23:31:50 +01:00
twobit-smaller.sch Fix typos throughout codebase. 2023-07-16 22:09:01 +02:00
twobit.sch Fix typos throughout codebase. 2024-05-06 11:51:53 +02:00

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.