Releases: oracle/fastr
FastR - GraalVM Community Edition 1.0 RC15
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/
Breaking changes in RC15:
ActiveBindingobjects do not support theUNBOXmessage anymore- new Truffle interop converts
doublevalues tointvalues if they fit in the integer range- see the changes in the spec tests
Added missing R builtins and C APIs:
- simple support for the weak reference API functions (
R_MakeWeakRef,R_MakeWeakRefC,R_WeakRefKey,R_WeakRefValue) Rf_i1machgzconbuiltin forurlconnections, e.g.,load(url('protocol://path'))should work nowSys.localeconvsupports:decimal_point,thousands_sep,grouping,int_curr_symbol,currency_symbol,mon_decimal_point,
mon_thousands_sep,mon_grouping,int_frac_digits,p_cs_precedes, other fields are fixed to some meaningful but not culture
sensitive value for given field
Bug fixes:
rep.intwith value argument of length 0 just returns the value argumenttcrossprodcalled fromapplydid not give correct result #60Rf_lengthgetscan acceptNULLargument- FastR does not allow Java interop when not started with
--jvm
FastR - GraalVM Community Edition 1.0 RC14
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/
New features in RC14:
- all FastR specific options (NOT those GNU-R compatible like --save) are experimental except for
--R.PrintErrorStacktracesToFile, which is an option that enables logging of FastR internal errors for bug reporting purposes. Experimental options can be unlocked using--experimental-optionsor withContextBuilder#allowExperimentalOptions. - the MRAN mirror used by FastR by default instead of CRAN was bumped to 2019-02-13
- options for the JVM or native image are now passed using
--vm.prefix in both cases instead of--jvm.. or--native. (e.g.,--jvm.Dproperty=falsebecomes--vm.Dproperty=false)
New features:
- whenever possible, errors are propagated to the FastR embedder
Added missing R builtins and C API
Rf_StringBlank
Bug fixes:
C_numeric_derivgives wrong results of gradient #54tcrossprodwith a single vector #56length<-would remove attributes from the target even if it was a shared valuelength(x) <- Nshould not strip attributes iflength(x) == N, which is not in line with GNU-R documentation, but relied upon in the methods package #55as.Datewith invalid date string #56
FastR - GraalVM Community Edition 1.0 RC13
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/
New features in RC13:
- new JUL-like logging infrastructure backed by Truffle
- FastR options are based on Truffle Options. New command-line format - i.e.
bin/r --R.PerformanceWarning="true". Also configurable viaorg.graal.polyglot.Context.Builder. - optional post-installation script
configure_fastralso regeneratesetc/Renvironandetc/ldpaths - FastR vectors are not writeable from other languages. In order to update FastR vectors from other languages: retrieve the reference to the subset assign function
[<-and execute it. Note that it will return the new vector with the updated values.
Added missing R builtins and C API
polyroot- dummy implementation of
pcre_config
Bug fixes:
- when using GNU-R graphics (
--R.UseInternalGridGraphics=false) FastR would still override the graphics package R functions - cannot install
RcppParallel#52 - visibility propagation in
tryCatch
FastR - GraalVM Community Edition 1.0 RC12
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/
New features in RC12:
- the implementation of the TruffleLanguage#toString method uses R function print
- for example: the console in Chrome DevTools will print data.frames formatted like R would
Added missing R builtins and C API
- FastR provides GNU-R compatible parseData for expressions parsed via parse(...,keep.source=T)
- format.POSIXlt supports following formats: %z, %Z, %x, %X.
- dummy implementation of the ALTREP framework to avoid linking problems. Most of the functions fail at runtime. #48
Bug fixes:
- sys.calls gives wrong result when eval with envir argument is on the call stack
- is.na was not correctly handling lists, for example: is.na(list(function() 42))
- transfer srcref attribute to the result of .subset and [
- matrix(1,nrow=NULL,ncol=NULL) caused internal FastR error instead of R user level error
- option --polyglot works with the native image of FastR
- added native functions optim() and optimness()
- fixed various race conditions in parallel package
- strsplit(...,perl=T) does not end up in an infinite loop if the pattern is not found by pcre_exec
- as.character.factor error for levels containing NAs
- env2list error for environments containing pairlists
- body<- error for non-scalar values
- unlink error for paths containing wildcard(s) but no path separator
- dims attribute errorneously set to RDoubleVector; exception when retrieving the dims #49
- issues with the dplyr's mutate and transmute: #50 and #51
FastR - GraalVM Community Edition 1.0 RC11
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/
New features in RC11:
-
upgraded the R version to R-3.5.1
- base packages and other sources used directly from GNU-R upgraded to their R-3.5.1 versions
- fixed differences between R-3.4.0 and R-3.5.1
-
FastR does not print or log any details for internal errors unless it is run with
--jvm.DR:+PrintErrorStacktracesToFile
Added missing R builtins and C API
Rf_duplicatedRf_setVarnorm_randexp_rand
Bug fixes:
- internal error in
mapplywith empty arguments list commentandcomment<-work with S4 objectsiconvlist()was failing on argument error #43rangeworks properly with lists- the reference count of
dimnamesof the result of==was not handled properly leading to incorrect results #40 existsdid not work properly in all cases when used with themodeargument #44- 'charIndex out of range' when parsing an incomplete source #39
no_proxyenvironment variable was not parsed correctlyread.csvtreats empty value asNAof the same type as the rest of the values in the column #42SET_NAMEDallows to decrease the reference count to support a pattern fromdata.table- exception when writing into the result returned from
split switchfalls through only if the actual argument is empty constant:switch('x',x=,y=42)vs.switch('x',x=quote(f(1,))[[3]],y=42)oldClass<-works with external pointers and other less common R types- C API function
Rf_setAttribcoerces double vector to integer when setting "dim" attribute #46
FastR - GraalVM Community Edition 1.0 RC10
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_INFOto 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.packagesto 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.envbuiltin- private
do_fminexternal 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.pathwithNULLas one of its arguments gives correct result (empty character vector)format.POSIXltuses the same time zone database as rest of the system #29dev.control(displaylist = 'inhibit')causedClassCastExceptiondownload.filefollows redirects.- static members of Java interop objects are not ignored during printing and deparsing
- fixed internal error in
on.exit(NULL) - fixed
mgetto accept also non list values forifnotfound - updating dimensions of a vector always resets the dimnames. #34
env2listused in, e.g.,as.list.environmentcan handle...inside the environment
FastR - GraalVM Community Edition 1.0 RC9
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
- various improvements in handling of foreign objects in R
Added missing R builtins and C API
- eapply builtin
- rapply builtin
Bug fixes:
- colon builtin calculated length incorrectly in some circumstances
- storage.mode<- works with NULL
- Rf_coerceVector works with pairlists and language objects
- allow formal parameter names: '..1', '..1=default', '...=default'
FastR - GraalVM Community Edition 1.0 RC8
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/
Bug fixes:
- slot (@) was not working with foreign arrays
- memory leak when invoking some native functions
- one symbol was reported multiple times to the memory profiler
- maintain the same ownership relation between SEXPs as GNU-R does to prevent an unexpected collection of some SEXPs
FastR - GraalVM Community Edition 1.0 RC7
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/
API changes
- eval.polyglot: the parameter
sourcewas renamed tocode
New features
- AWT based graphics devices (jpg, png, X11, ...) supported in native image
- Seamless way to create R data frames from Polyglot objects
- Handled by as.data.frame.polyglot.value
- Expected structure: KEYS are used as column names, the values must be homogenous arrays (e.g. respond to HAS_SIZE)
Bug fixes
- S3 dispatch works correctly with NULL
- Paths in eval.polyglot are resolved relative to the current working directory
- Connections: sockets can always be read and written, raw connections are always binary
- Promises are evaluated in LazyLoadDBFetch (to support delayedAssign)
- Fixed broken
Rscript --version - Various fixes necessary to pass dplyr tests (GitHub version of dplyr)
FastR - GraalVM Community Edition 1.0 RC6
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
- Support for reading/writing graphical parameters via par
- in preparation for full graphics package support
Added missing R builtins and C API
- 'get' builtin supports the 'envir' argument
- 'inspect' internal
- SETLEVELS
- Rf_isObject
- SET_ENCLOS
- R_nchar
- R_forceAndCall
Bugfixes
- support for formulas that include '...'
- updating attributes of NULL produces empty list with given attributes
- treat CR/LF in readLine like GNU-R
- fix in La_chol (incorrect pivot attribute in return)
- various fixes in vector coercion code to produce GNU-R compatible warnings and errors