Giter Site home page Giter Site logo

jmr / r7rs-benchmarks Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ecraven/r7rs-benchmarks

0.0 0.0 0.0 8.33 MB

Benchmarks for various Scheme implementations. Taken with kind permission from the Larceny project, based on the Gabriel and Gambit benchmarks.

Makefile 0.01% Shell 0.71% TeX 1.51% Scheme 28.57% HTML 12.14% JavaScript 57.07%

r7rs-benchmarks's Introduction

R7RS Benchmarks

Benchmarks for various Scheme implementations. Taken with kind permission from the Larceny project, based on the Gabriel and Gambit benchmarks.

See the results here

Running the tests

Just run

./bench <scheme> <test>

Schemes that should work:

This should result in a file ./results.<scheme>.

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 (<scheme>,<test>,<seconds>).

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

  • vector-lib
  • r7rs

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

Precompile system libraries (optional). It is still going to be slow.

echo "(compile-system-libraries)" | mono IronScheme.Console-v4.exe

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:

#!/bin/bash
mono ~/IronScheme/IronScheme.Console-v4.exe -nologo -emacs $*

and put that somewhere in your $PATH.

Stalin

Before calling Stalin, the code is run through 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.

r7rs-benchmarks's People

Contributors

arnebab avatar codemac avatar dcurrie avatar ecraven avatar jeffbezanson avatar justinethier avatar leppie avatar michaellenaghan avatar svenha avatar vyzo avatar wasamasa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.