FastR - GraalVM Community Edition 1.0 RC10
Pre-releaseFastR 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 functionoptimize
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 #28file.path
withNULL
as one of its arguments gives correct result (empty character vector)format.POSIXlt
uses the same time zone database as rest of the system #29dev.control(displaylist = 'inhibit')
causedClassCastException
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 forifnotfound
- updating dimensions of a vector always resets the dimnames. #34
env2list
used in, e.g.,as.list.environment
can handle...
inside the environment