See the results [[http://ecraven.github.io/r7rs-benchmarks/benchmark.html][here]]
./bench
Schemes that should work:
All of these Schemes are packaged for ArchLinux. The tests are run with whatever that package produces.
Run
make csv
to produce a file =all.csv= with the test results (=
** Limiting compile-time and run-time The environment variable =CPU_TIME= can be set, to limit the time for compilation and for running (each individually).
CPU_TIME=3600 ./bench chez all
** Path to executables You can set an environment variable to specify the path to each Scheme.
LARCENY=/tmp/larceny/larceny MIT=/tmp/mit/mit-scheme ./bench "mit larceny" "fib ack"
** Notes for specific implementations *** Chicken The chicken test code assumes the presence of
Install them by running
chicken-install vector-lib r7rs
*** Racket The racket test code assumes the presence of https://github.com/lexi-lambda/racket-r7rs.git.
Install the r7rs package installation-wide.
Run:
sudo raco pkg install --scope installation r7rs
*** IronScheme Install the latest version of .NET Runtime (currently 9.0-preview, requires at least IronScheme 1.0.357) from https://dotnet.microsoft.com/en-us/download/dotnet .
The default binary for IronScheme (can be changed by exporting IRONSCHEME in your shell before running bench) is called =ironscheme=.
If you unpack IronScheme in your home, you can create a shell script like the following:
export DOTNET_CLI_TELEMETRY_OPTOUT=1 dotnet ~/IronScheme/IronScheme.ConsoleCore.dll $*
and put that somewhere in your =$PATH=. * Stalin Before calling Stalin, the code is run through [[http://petrofsky.org/src/alexpander.scm][alexpander]] (by default using Chicken's =csi=). Then stalin is invoked on the result. * Unsupported Schemes Owl Lisp Missing a lot of necessary functions, =read= for example. TinyScheme Problems with redirecting input, =read= chokes. No timing functions. Safety The benchmarking code does not* use unsafe optimizations. These make code run even faster (but less safe ;) Specific options that could be used are: