Home

Awesome

Riposte, a fast interpreter and JIT for R.

Justin Talbot justintalbot@gmail.com Zach Devito

We only do development on OSX and Linux. It's unlikely that our JIT will work on Windows.

Active development is currently happening on the library branch. See the Roadmap section below for information on development plans.

Compiling riposte

  1. Run make release in the riposte directory, or make debug for the debug version

  2. Execute ./riposte to start

Flags

-j # : start with # worker threads (defaults to 1, set to the number of cores on your machine)

-f filename : execute R script

-v : verbose debug output for the vector trace recorder and JIT

Limitations

Riposte is in heavy development. Many things haven't been implemented and many things have been implemented incorrectly. Use with caution. Fixes welcome.

License

Riposte is distributed under the BSD 2-clause license (http://www.opensource.org/licenses/bsd-license.php).

Riposte uses the following libraries:

Testing

Riposte comes with a growing set of validation tests that compare the output of Riposte to standard R. Run make tests to run all the tests (R must be installed). No output indicates all tests passed. Run make tests/path/to/test to execute a single test and print its diff.

Roadmap

Riposte was developed as an academic research project with a focus on developing new techniques for executing dynamically typed vector code efficiently. We are now in the process of converting Riposte from research software to a robust drop-in replacement for R. This is a large effort; we estimate that the primary portion of this work will take about a year. Much of this work will be reimplementing R internal functions in a limited subset of R.

Riposte is currently considered in an alpha state. We'll move to a beta release when support for R's base library is complete, around the end of the year. Our current goal is to release version 1.0 next July.

Planned work for July-December 2013. The first three bullet points are currently in progress on the library branch. Partial work will be integrated to main by the end of July.

Next (January-June 2014)