Skip to content

FastR - GraalVM Community Edition 1.0 RC10

Pre-release
Pre-release
Compare
Choose a tag to compare
@ansalond ansalond released this 05 Dec 18:13
· 3504 commits to master since this release

FastR is a GNU R compatible implementation of R for GraalVM. It is currently based on R 3.4.0, reuses the base packages of GNU R 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/

New features in RC10:

  • interop and tooling: READ and WRITE of ActiveBinding may have side effects. This is communicated via KEY_INFO to the tools and other languages (e.g., a debugger may warn before evaluating an ActiveBinding)
  • the MRAN mirror used by FastR as default repo was moved to https://mran.microsoft.com/snapshot/2018-06-20
  • new function install.fastr.packages to install FastR rJava replacement and possibly other packages in the future
  • print the whole guest language stacktrace if an exception occurs during an interop call into another language

Added missing R builtins and C API:

  • pos.to.env builtin
  • private do_fmin external function from the stats packages used by public R function optimize
  • beta #33

Bug fixes:

  • tooling: top level statements are not marked as functions (e.g., a debugger will not treat them as such anymore)
  • update rpath correctly for redistributed libraries when producing a release build. This issue caused linking problems for MacOS users #26
  • UseMethod caused internal error under some specific circumstances (happens during installation of the R.oo package)
  • fully support indirect use of .Internal, e.g. in (get('.Internal'))(paste0(list(1,2),','))
  • as.character(external-pointer) does not crash, but prints the pointer address #28
  • file.path with NULL as one of its arguments gives correct result (empty character vector)
  • format.POSIXlt uses the same time zone database as rest of the system #29
  • dev.control(displaylist = 'inhibit') caused ClassCastException
  • download.file follows redirects.
  • static members of Java interop objects are not ignored during printing and deparsing
  • fixed internal error in on.exit(NULL)
  • fixed mget to accept also non list values for ifnotfound
  • updating dimensions of a vector always resets the dimnames. #34
  • env2list used in, e.g., as.list.environment can handle ... inside the environment