FastR - GraalVM Community Edition 19.3.0
FastR is a GNU R compatible implementation of R for GraalVM. It is currently based on R 3.5.1, reuses the base packages of GNU R and is compatible with the ecosystem.
For example, FastR can install and run unmodified complex R packages like ggplot2, Shiny, or Rcpp, for compatibility with other packages please refer to the compatibility checker: http://www.graalvm.org/docs/reference-manual/compatibility/.
Being implemented on top of GraalVM, FastR uses its state-of-the-art JIT compiler and has better peak performance, often several times faster than GNU R.
The R language components can be installed in GraalVM using the gu utility.
More information is available on the GraalVM website: http://www.graalvm.org/docs/reference-manual/languages/r/
Changes in 19.3.0:
- FastR has been updated to R version 3.6.1.
- In this release, FastR does not ship with GCC runtime libraries. Use the following commands to install the necessary dependencies:
- Ubuntu 18.04 and 19.04:
apt-get install libgfortran3 libgomp1 - Oracle Linux 7:
yum install libgfortran libgomp - Oracle Linux 8:
yum install compat-libgfortran-48 - MacOS:
brew install [email protected]
- Ubuntu 18.04 and 19.04:
- Preview of support for LLVM based execution of R native extensions.
- FastR is configured to use the GraalVM LLVM toolchain to compile the C/C++ and Fortran code of R packages. The resulting binaries will contain both the native code and the LLVM bitcode. The R packages that are shipped with FastR were also compiled using the GraalVM LLVM toolchain and their binaries contain the LLVM bitcode.
- FastR loads and runs the R extensions native code by default, but when run with the option
--R.BackEnd=llvm, it will load and run the LLVM bitcode if available. You can use the LLVM backend selectively for specific R packages via--R.BackEndLLVM=pkg1,pkg2. - If you encounter any issues when installing R packages, you can switch back from the GraalVM LLVM toolchain to the native toolchain by running
fastr.setToolchain("native")or by manually editing the$FASTR_HOME/etc/Makeconffile.
- Fixed memory leaks reported on GitHub.
- Fixed failures when working with large vectors (>1GB).
- Implemented
grepRaw, but only forfixed=T.
We encourage the users to experiment with the new LLVM support and report any issues. To see the complete list of changes, please refer to the project changelog.